標籤:
代碼:
package com.example.ouradapter;import android.app.ListActivity;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.TableLayout.LayoutParams;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends ListActivity { private String[] mListTitle = { "姓名", "性別", "年齡", "居住地","郵箱"}; private String[] mListStr = { "雨松MOMO", "男", "25", "北京", "[email protected]" }; ImageView iamge = null; TextView title = null; TextView text = null; ListView mListView = null; // RelativeLayout rl=(RelativeLayout)this.findViewById(R.id.rl); MyListAdapter myAdapter = null; @Override protected void onCreate(Bundle savedInstanceState) { mListView = getListView(); myAdapter = new MyListAdapter(this); setListAdapter(myAdapter); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { View v=adapterView.getChildAt(position); v.setBackgroundColor(Color.RED); Toast.makeText(MainActivity.this,"您選擇了" + mListStr[position], Toast.LENGTH_LONG).show(); } }); // View v=LayoutInflater.from(this).inflate(R.layout.activity_main, null);// iamge = (ImageView)v.findViewById(R.id.color_image); // title =(TextView)v.findViewById(R.id.color_title); // text= (TextView)v.findViewById(R.id.color_text);// title.setText(mListTitle[1]); // text.setText("123456789"); // iamge.setImageResource(R.drawable.ic_launcher); // this.addContentView(v,new LinearLayout.LayoutParams( // LinearLayout.LayoutParams.WRAP_CONTENT, // LinearLayout.LayoutParams.WRAP_CONTENT)); super.onCreate(savedInstanceState); } public class MyListAdapter extends BaseAdapter { private Context mContext; private int[] colors = new int[] {Color.BLUE, Color.GREEN,Color.YELLOW,Color.WHITE }; public MyListAdapter(Context context) { mContext = context; } public int getCount() { return mListStr.length; } // @Override // public boolean areAllItemsEnabled() { // return false; // } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.activity_main, null); iamge = (ImageView) convertView.findViewById(R.id.color_image); title =(TextView) convertView.findViewById(R.id.color_title); text= (TextView) convertView.findViewById(R.id.color_text); } int colorPos = position % colors.length; convertView.setBackgroundColor(colors[colorPos]); title.setText(mListTitle[position]); text.setText(mListStr[position]); iamge.setImageResource(R.drawable.ic_launcher); return convertView; } } }
listView在一開始繪製的時候首先會調用getCout()方法得到繪製次數 ,然後會執行個體化自己定義的BaseAdapter通過getView()方法一層一層繪製ListView,所以我們可以在這裡面根據position(當前繪製的ID)來任意的修改繪製的內容。結果:
安卓自寫Adapter