android listView-simpleadapter(点击事件)

androidListView是展现数据用到最多的一个组件,也是非常非常重要的一个组件,在android开发当中基本上处处都可以看到,例如,大家常用到的QQ,网页,等等一些客户端基本上就是有listView组成的。在这里我介绍的是simpleadapter 来生成listView。这个是用到最多的。因为在做listView,这个可以生成一些复杂的listView组件。

       这个和其他的组件有点不同,那就是这个组件,我们一般会写一个模板来做。

首先我们来定义一个模板。

<?xml version="1.0" encoding="utf-8"?>

<TableLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content">

  <TableRow >

  <TextView

        android:id="@+id/simpleName"

        android:textSize="15px"

        android:gravity="center_vertical"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" />

      <TextView

        android:id="@+id/simpleSex"

        android:textSize="15px"

        android:gravity="center_vertical"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" />

  </TableRow>

</TableLayout>

这个模板就是在你的listview中每一行显示的布局。我们用的是表格布局

 

下面我们定义我们的主页面的布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  <TextView android:layout_width="fill_parent"

         android:layout_height="wrap_content"

         android:textSize="25px"

         android:gravity="center_horizontal"

         android:text="simpleadapter"/>

  <ListView android:id="@+id/simpleAdapterId"

         android:layout_width="fill_parent"

         android:layout_height="wrap_content"/>

</LinearLayout>

这里你会看到一个listview 这个就是和上面模板布局进行关联的。这个关联我们要在代码中实现

 

   private SimpleAdapter simpleAdapter=null;

   private List<Map<String, String>> list=new ArrayList<Map<String,String>>();

   private ListView listView=null;

   protectedvoid onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      super.setContentView(R.layout.mylistviewtwo);

      this.listView=(ListView)super.findViewById(R.id.simpleAdapterId);

      this.simpleAdapter = new SimpleAdapter(this,this.getData(),

           R.layout.data_list, new String[]{"name","sex"}, newint[]{

                 R.id.simpleName, R.id.simpleSex });

      this.listView.setAdapter(this.simpleAdapter);

   }

  

   private List<Map<String, String>> getData(){

      for(int i=0;i<20;i++){

        Map<String,String>map=new HashMap<String, String>();

        map.put("name", "bruce"+i);

        map.put("sex", "");

        this.list.add(map);

       

      }

      returnthis.list;

   }

 

在这里你会看到很多其他的类SimpleAdapter 这个就是listview装载数据的一个类。this.simpleAdapter = new SimpleAdapter(this,this.getData(),

           R.layout.data_list, new String[]{"name","sex"}, newint[]{

                 R.id.simpleName, R.id.simpleSex });

      this.listView.setAdapter(this.simpleAdapter);

   }

这个就是它的实现,它会有5个参数,第一个是上下文,第二个是它的数据源

这个数据源我们一般用List<Map<String, String>> 这个格式。第三个就是我们的模板,第4个是我们的List<Map<String, String>> mapkey 第五个是我们模板要放数据的位置的id 必须是和第4个参数一一对应,这样我们的数据也能相应的放对位置。这个做完,我们就把模板,数据,一一对应的着到的位置,放在了SimpleAdapter中。接下来就是我们要和主布局的listview进行绑定,这样就很简单的。this.listView.setAdapter(this.simpleAdapter);

这样我们的listview就做好了。

 在做这个的时候,一定要注意,模板,主页的布局,要不然就显示不出数据了。

 

下面我说个简单的点击事件。

 

this.listView.setOnItemClickListener(new OnItemClickListener(){

        publicvoid onItemClick(AdapterView<?> adapter, View view, int position,

              long id) {

  

      这个里面用到最多的就是position 这个就是你选择的是哪个行。在这里面你就可以做表格点击事件进行操作了。

 

 

}});

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值