隔行換色的Android ListView:使用BaseAdapter
package com.xsjayz.listview0822;import android.app.Activity; import android.content.Context; 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.ListView; import android.widget.TextView; import android.widget.Toast;
public class ListViewActivity extends Activity {
private String[] moreNames = null; private ListView listView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 在string中定義的字符串數組 moreNames = getResources().getStringArray(R.array.list_array); // 在main.xml中定義的listview listView = (ListView) findViewById(R.id.listViewMoreInfo); // 隱藏ListView的分隔線 listView.setDivider(null); listView.setAdapter(baseAdapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> view, View arg1, int position, long id) { switch (position) { case 0: toastUtil(ListViewActivity.this, position); break; case 1: toastUtil(ListViewActivity.this, position); break; case 2: toastUtil(ListViewActivity.this, position); break; case 3: toastUtil(ListViewActivity.this, position); break; case 4: toastUtil(ListViewActivity.this, position); break; case 5: toastUtil(ListViewActivity.this, position); break; case 6: toastUtil(ListViewActivity.this, position); break; } } }); } /** * 由于使用了大量的Toast,所以這里將這些Toast封裝成一個方法 * * @param context * @param position */ public void toastUtil(Context context, int position) { Toast.makeText(context, moreNames[position], 3000).show(); } /** * 自定義BaseAdapter,返回隔行換色的視圖顯示在ListView上。 */ BaseAdapter baseAdapter = new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = null; TextView textView = null; // 獲得布局文件more_info_my.xml,里面定義了TextView和ImageView兩個組件 convertView = LayoutInflater.from(ListViewActivity.this).inflate( R.layout.more_info_my, null); textView = (TextView) convertView.findViewById(R.id.mytxt); imageView = (ImageView) convertView.findViewById(R.id.myimage); // 設置ListView顯示的文字內容和圖片 textView.setText(moreNames[position]); imageView.setImageResource(R.drawable.moreinfo_extend_next); // 為ListView設置隔行不同的背景顏色 if (position % 2 == 0) { convertView.setBackgroundDrawable(getResources().getDrawable( R.drawable.list_item_2)); } else { convertView.setBackgroundDrawable(getResources().getDrawable( R.drawable.list_item_1)); } // 返回的convertView對象將作為ListView的列表項 return convertView; } @Override public long getItemId(int position) { return 0; } @Override public Object getItem(int position) { return null; } @Override public int getCount() { return moreNames.length; } };
}</pre>
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!