android學習之自定義列表顯示

總體概述:在ListActivity中有預置的佈局(simple_list_item_1)作爲模板。但有時根據內容需要自定義列表顯示,分五步:一、創建列表條目佈局和業務類;二、創建列表數據適配器類;三、在MainActivity中創造一個適配器類對象並綁定到當前ListAcitivity中;四、創建示例數據類;五、在當前MainActivity中加載示例數據。

一、創建列表條目佈局和業務類

    根據業務內容需要創建。

二、創建列表數據適配器類

  public class TestListAdapter extends ArrayAdapter {
     private ArrayList items;
     private Context ctx;
 
 public TestListAdapter(Context context, int textViewResourceId, ArrayList items) {
  super(context,textViewResourceId,items);
         this.items=items;
         ctx=context;
 }
 
 @Override
 public View getView(int position,View convertView,ViewGroup parent){
    View v=convertView;
    if(v==null){
      LayoutInflater vi=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     v=vi.inflate(R.layout.test_row, null);
     }
    TestContent testContent=items.get(position);
    if(testContent!=null){
    CheckBox cbox=(CheckBox)v.findViewById(R.id.checkBox);
    Button but=(Button)v.findViewById(R.id.mainbutton);
    if(cbox!=null)cbox.setText(testContent.getName());
    }
   return v;
 }
 
   public void setList(ArrayListt_list){
      this.clear();
      if(t_list!=null&&t_list.size()>0){
      for(int i=0;i
         this.add(t_list.get(i));
     this.notifyDataSetChanged();
  }
 }

}
三、在MainActivity中創造一個適配器類對象並綁定到當前ListAcitivity中

      private TestListAdapter t_adapter = new TestListAdapter(this, R.layout.test_row,new ArrayList() );
      setListAdapter(t_adapter);
      listData();

四、創建示例數據類

  public class TestSample {
     private static long idfrom=0;
     public static ArrayList getData(){
     ArrayListt_list=new ArrayList();
     TestContent testContent=null;
     for(int i=0;i<5;i++){
        idfrom++;
        testContent=new TestContent("測試"+idfrom);
       t_list.add(testContent);
      }
     return t_list;
    }
}

五、在當前MainActivity中加載示例數據

   private void listData(){
       ArrayListt_list=TestSample.getData();
       t_adapter.setList(t_list);
  }
  

 

進一步瞭解:查看android API 

java.lang.Object
  android.widget.BaseAdapter
      android.widget.ArrayAdapter<T>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章