ListView 包含Button 的事件问题
来源:互联网 发布:言情男主有残疾知乎 编辑:程序博客网 时间:2024/05/29 13:16
andriod 里面的ListView是一个显示列表数据的控件,非常好用,常用适配器SimpleAdapter进行绑定,绑定代码如下:
ListView lstView = (ListView) this.findViewById(R.id.listView1);SimpleAdapter adapter=new SimpleAdapter(context, data, resource, from, to);lstView.setAdapter(adapter);
这样绑定的数据可以是TextView,Button,ImageButton等控件,但是对于Button ,ImageButton这样的按钮控件无法实现单事件,接下来我们看看如何实现这样的功能:
为了能实现这样的功能,很多朋友喜欢继承BaseAdapter适合器进行处理,其实BaseAdapter是一个非常基础的基类,对于一般的TextViwe ,ImageView,Button控件的数据绑定都没有实现 ,所以我们应该继承SimpleAdapter进行重写getView方法
重写类如下所示:
private class MySimpleAdapter extends SimpleAdapter{ public MySimpleAdapter(Context context,List<? extends Map<String, ?>> data, int resource,String[] from, int[] to) { super(context, data, resource, from, to); } public View getView(int position, View convertView, ViewGroup parent) { return super.getView(position, convertView, parent); }}
刚才我们说了继承SimpleAdapter已经实现了常用控件数据的绑定功能 是在getView方法的 super.getView(position, convertView, parent);
实现的,我们只要将super.getView(position, convertView, parent);的引用得到就可以了
View v=super.getView(position, convertView, parent);
这样就可以得到一个列表项的索引,接下来就是为ListView的每一项的Button添加事件了,关键代码如下
Button btn=(Button) v.findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } });
事件添加完了,现在出现一个问题,当单击某个按钮时,按钮事件是如何去知道单击的是ListView的哪一项呢,这时就要为每个Button对象添加一个Tag了
我们这里用listview的项position的索引作为tag
重写getView的完整代码如下:
@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View v= super.getView(position, convertView, parent); Button btn=(Button) v.findViewById(R.id.button1); btn.setTag(position); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "单击我了"+v.getTag(), 1).show(); } }); return v; }
- ListView 包含Button 的事件问题
- ListView 包含Button 的事件问题
- ListView 包含Button 的事件问题
- ListView 包含Button 的事件问题
- 解决ListView的Item包含Button的点击冲突事件
- ListView包含Button,导致ListView itemclick无效的问题
- ListView中包含Button情况下焦点事件的获取
- ListView中包含Button时候,怎么获取listView的onItemClick事件,2015-8-10
- android listview 和button 共存的事件响应问题。
- listview 的item 中包含 button
- ListView中包含Button
- ListView的Item中包含Button等导致setOnItemClickListener失效的问题
- 关于ListView的item中包含Button或Checkbox时导致item无法点击问题
- ListView中Button的点击事件
- ListView中Button的点击事件冲突
- listview里的button事件添加方法
- ListView中Button事件
- 我自己经过测试的 包含 button 的 listView
- URAL1015,URAL1019
- UINavigationController Push动画
- Ubuntu下安装VMware tools 的解决办法
- Wikioi1080线段树练习
- SVN服务器搭建和使用(一)
- ListView 包含Button 的事件问题
- 牛人博客地址
- SqlServer2008导出的数据库的存放位置
- 收获不止Oracle读书笔记之一:体验物理体系之旅
- HDU--2007 -- 平方和与立方和
- 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY
- DevExpress XtraGrid设计器在子窗体内不可用
- 启动Hadoop后发现datanode无法启动
- java static作用