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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值