/创建名为my_listview的xml视图

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:id="@+id/list_view_2"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

/创建名为MyListView的java文件
新建adapter对象

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.my_listview);ListView listview = (ListView) findViewById(R.id.list_view_2);;MyAdapter adapter = new MyAdapter(this,getData(),R.layout.item,new String[]{"image", "name", "size", "button"},new int[]{R.id.image, R.id.name, R.id.size, R.id.button});listview.setAdapter(adapter);listview.setOnItemClickListener(new ListView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(MyListView.this,"我是item点击事件 i = " + i + "l = " + l,Toast.LENGTH_SHORT).show();}});
}private ArrayList<Map<String,Object>> getData() {ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>();Map<String, Object> map;map = new HashMap<String, Object>();map.put("image", R.drawable.log);map.put("name", "王者农药");map.put("size", "30dp");map.put("button", "下载");data.add(map);map = new HashMap<String, Object>();map.put("image", R.drawable.log2);map.put("name", "吃鸡战场");map.put("size", "30dp");map.put("button", "下载");data.add(map);map = new HashMap<String, Object>();map.put("image", R.drawable.log3);map.put("name", "氪金");map.put("size", "30dp");map.put("button", "下载");data.add(map);return data;}

创建名为item的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:descendantFocusability="blocksDescendants"><ImageViewandroid:id="@+id/image"android:src="@drawable/log"android:layout_width="70dp"android:layout_height="70dp"/><LinearLayoutandroid:layout_width="0dp"android:layout_height="wrap_content"android:orientation="vertical"android:layout_marginLeft="20dp"android:layout_marginTop="5dp"android:layout_weight="3"><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_marginTop="2dp"android:textColor="#130000"android:textSize="18dp"/><TextViewandroid:id="@+id/size"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:layout_marginLeft="5dp"android:textColor="#93851f"android:text="65M"android:textSize="20dp"/></LinearLayout><Buttonandroid:layout_weight="1"android:id="@+id/button"android:layout_marginTop="12dp"android:layout_width="20dp"android:layout_height="40dp"android:text="下载"android:textSize="20dp"/>
</LinearLayout>

创建名为MyAdapter的java文件
通过设置标签获得不同按钮从而实现不同点击事件

public class MyAdapter extends SimpleAdapter {//上下文Context context ;public MyAdapter(Context context,List<? extends Map<String, ?>> data, int resource, String[] from,int[] to) {super(context, data, resource, from, to);this.context = context;}@Overridepublic View getView(final int i, View convertView, ViewGroup viewGroup){View view = super.getView(i, convertView, viewGroup);final Button btn = (Button) view.findViewById(R.id.button);btn.setTag(i);//设置标签btn.setOnClickListener(new android.view.View.OnClickListener() {@Overridepublic void onClick(View v) {switch ((Integer)v.getTag()){case 0:Toast.makeText(getApplicationContext(), "点击的是ImageButton" + v.getTag(), Toast.LENGTH_SHORT).show();break;case 1:Toast.makeText(getApplicationContext(), "hi" + v.getTag(), Toast.LENGTH_SHORT).show();break;case 2:Toast.makeText(getApplicationContext(), "gey" + v.getTag(), Toast.LENGTH_SHORT).show();break;}}});return view;}

在ListView中实现button功能相关推荐

  1. Android listView中的button点击事件

    如果listView中的item有button控件,那么如何获取listView中的button控件?又如何在点击button时定位当前的item? 在listview中的listitem设置事件响应 ...

  2. ListView中添加Button后,Button的点击事件和ListView的点击事件冲突

    1.在ItemView配置的xml文件中的根节点添加属性android:descendantFocusability="blocksDescendants" 2.在要添加事件的控件 ...

  3. ListView中加入Button后,Button的点击事件和ListView的点击事件冲突

    1.在ItemView配置的xml文件里的根节点加入属性android:descendantFocusability="blocksDescendants" 2.在要加入事件的控件 ...

  4. ListView中嵌套checkbox实现多选

    我现在要实现一个多选的ListView,当选择ListView中的checkbox的时候,可以将选中的多个checkbox所代表的值保存到数据库中!哪位高手做过类似的东西,给小弟指教指教,十分感谢! ...

  5. 关于listView的item失去焦点不能点击 Item中包含Button 导致抢占焦点

    今天发现一个问题.listView的item点击以后进入到下一个页面,下个页面有个返回按钮,直接返回回去以后点击事件不能触发,滑动或者重新打开这个listView,就可以达到原来的效果.后来发现是因为 ...

  6. Listview中使用线程实现无限加载更多项目的功能

    相关搜索:"Listview 加载更多", 在现在的SINA微博或者象twitter,dzone等网站中,当加载一个很长的列表时,往往都是 先加载部分内容,然后当用户用拖拉条往下拖 ...

  7. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

  8. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  9. android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能.分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在 ...

最新文章

  1. wdatepicker设置时间范围_Mac新手必看,这些设置可以让你的Mac更好用!
  2. Web纯前端“旭日图”实现元素周期表
  3. get/post时中文乱码问题的解决办法
  4. linux去重文件第一列,科学网—Linux实用命令 - 刘洪波的博文
  5. 【项目实战课】基于Pytorch的DCGAN人脸嘴部表情图像生成实战
  6. matlab 格式化文件,格式化matlab文件01_新建普通文件
  7. windows安装spark工具记录
  8. mysql初始化错误【一】Can't find error-message file '/usr/local/mysql/errmsg.sys'
  9. 好用的shell工具_精选5个酷毙的Python工具
  10. 【转载】正则表达式30分钟入门教程
  11. 又一家互联网咖啡品牌要凉:papi酱、李诞曾代言,融资4亿打水漂
  12. python精确匹配字符串_Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法...
  13. mac 生成公钥和私钥
  14. 【区块链开发入门】(二) 以太坊的编程接口
  15. Hadoop版本区别Hadoop组成
  16. java 基础的数组 添加
  17. linux ip1180,canon ip1180驱动下载
  18. 福建盼盼食品有限公司网络营销集团分析报告
  19. python安装途中遇到的问题和解决方法
  20. 洪荒开局鸿蒙绑定系统,洪荒开局绑定鸿钧

热门文章

  1. 基于深度学习的行人Re-ID问题的综述和展望
  2. Ps抠图之魔棒简易使用
  3. android键盘映射之一
  4. IDEA 出现问题:debugger启动tomcat 报错Address already in use: NET_Bind 解决方案
  5. pythonturtle画圆形螺旋风管_圆形风管节点大样图
  6. 清除win+r的记录
  7. Oulipo(欧力波)(经典kmp模板题) HDU-1686
  8. python0表示剪刀_简化Python代码(石头、纸、剪刀)
  9. .NET OCX开发
  10. java个人博客系统代码下载_java个人博客系统代码