android学习之自定义列表显示

来源:互联网 发布:指纹充电软件下载 编辑:程序博客网 时间:2024/06/05 21:07

总体概述:在ListActivity中有预置的布局(simple_list_item_1)作为模板。但有时根据内容需要自定义列表显示,分五步:一、创建列表条目布局和业务类;二、创建列表数据适配器类;三、在MainActivity中创造一个适配器类对象并绑定到当前ListAcitivity中;四、创建示例数据类;五、在当前MainActivity中加载示例数据。

一、创建列表条目布局和业务类

   根据业务内容需要创建。

二、创建列表数据适配器类

  public class TestListAdapter extendsArrayAdapter {
    private ArrayList items;
    private Context ctx;
 
 public TestListAdapter(Context context, inttextViewResourceId, ArrayList items) {
  super(context,textViewResourceId,items);
        this.items=items;
        ctx=context;
 }
 
 @Override
 public View getView(int position,ViewconvertView,ViewGroup parent){
    Viewv=convertView;
   if(v==null){
     LayoutInflatervi=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v=vi.inflate(R.layout.test_row,null);
    }
    TestContenttestContent=items.get(position);
   if(testContent!=null){
    CheckBoxcbox=(CheckBox)v.findViewById(R.id.checkBox);
    Buttonbut=(Button)v.findViewById(R.id.mainbutton);
   if(cbox!=null)cbox.setText(testContent.getName());
    }
   return v;
 }
 
   public voidsetList(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 = newTestListAdapter(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=newTestContent("测试"+idfrom);
      t_list.add(testContent);
     }
    return t_list;
    }
}

五、在当前MainActivity中加载示例数据

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

 

进一步了解:查看android API 

java.lang.Object  继承者 android.widget.BaseAdapter      继承者 android.widget.ArrayAdapter<T>
0 0
原创粉丝点击