转自:http://blog.163.com/promise_wg/blog/static/189120014201162442857324/

要实现添加按钮的操作,必须自定义Adapter,使用Button View的setTag()方法,将Button所属的位置设置到tag当中
要实现动态添加删除ItemView的操作,必须首先调整调整Adapter所绑定的数据源,然后调用Adapter的notifyDataSetChanged()方法

以下为实现的一个实例:

package com.jason.joysmsyd;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.ListActivity;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.View.OnClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;     public class SendMain extends ListActivity implements OnClickListener{Button buttonMessage,buttonContact,buttonHistory;   EditText textMessage;      List<Map<String,String>> contacts = new ArrayList<Map<String,String>>();@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);this.setContentView(R.layout.layout_send);buttonMessage = (Button) this.findViewById(R.id.ButtonMessage);buttonContact = (Button) this.findViewById(R.id.ButtonContact);buttonHistory = (Button) this.findViewById(R.id.ButtonHistory);textMessage = (EditText)this.findViewById(R.id.EditTextMessage);textMessage.setText(this.getIntent().getExtras().getString("message"));}public void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.ButtonMessage:this.finish();break;case R.id.ButtonContact:    {Intent intent = new Intent();intent.setAction("com.jason.action.contact");this.startActivityForResult(intent, 0);}break;case R.id.ButtonHistory:    {Intent intent = new Intent();intent.setAction("com.jason.action.history");this.startActivityForResult(intent, 1);}break;}}protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if (requestCode == 0 && resultCode == RESULT_OK) {this.getcontactFromString(data.getExtras().getString(UserSelectActivity.RETURN_LIST));bindDataToList();}}private void getcontactFromString(String data) {if (data == null || data.length() == 0) {return;}String[] arrayContact = data.split("#");for (String singleContact : arrayContact) {if (singleContact != null && singleContact.length() > 0) {String[] props = singleContact.split(":");if (props.length == 2) {Map<String,String> contact = new HashMap<String,String>();contact.put("name", props[0]);contact.put("phone", props[1]);contacts.add(contact);}}} }private void bindDataToList() {this.setListAdapter(new MyAdapter());}public class MyAdapter extends BaseAdapter{public int getCount() {// TODO Auto-generated method stubreturn contacts.size();}public Object getItem(int position) {// TODO Auto-generated method stubreturn contacts.get(position);}public long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubLayoutInflater inflater = SendMain.this.getLayoutInflater();final View view = inflater.inflate(R.layout.layout_user_item, null);final TextView textPhone = (TextView) view.findViewById(R.id.text1);final TextView textName = (TextView) view.findViewById(R.id.text2);Button button = (Button)view.findViewById(R.id.buttonDelete);textPhone.setText(contacts.get(position).get("phone"));textName.setText(contacts.get(position).get("name"));button.setTag( position);button.setOnClickListener(new OnClickListener(){public void onClick(View v) {// TODO Auto-generated method stub int position = Integer.parseInt(v.getTag().toString());contacts.remove(position);MyAdapter.this.notifyDataSetChanged();//     SendMain.this.getListView().refreshDrawableState();}});return view;}}}

转载于:https://www.cnblogs.com/sesexxoo/archive/2013/04/12/6189943.html

Android – ListView 中添加按钮,动态删除添加ItemView的操作相关推荐

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

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

  2. android ListView中含有按钮事件实时更新ListView数据案例-1

    1.布局文件Listview <?xml version="1.0" encoding="utf-8"?> <android.support. ...

  3. android开发中为MultiAutoCompleteTextView控件添加其他分隔符

    android开发中为MultiAutoCompleteTextView控件添加其他分隔符,例如:分隔符改为分号";" zs;ls;ww;xm //SemicolonTokeniz ...

  4. android listview中item通过viewpager实现

    android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...

  5. matlab中run按钮是灰色的,Android Studio中Run按钮是灰色的快速解决方法

    首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project.Models)相关代码里调过来就好.之前的文章里有说过. 经过调好gradle这些文件,AS ...

  6. Android ListView中CheckBox选中状态失效的最佳解决方案

    Android ListView中CheckBox选中状态失效: 在ListView中某一项滑到显示区外部的时候,重新划回来时其中的CheckBox的选中状态会重置,本文提出了一种解决方案,操作起来快 ...

  7. android listview中播放视频,支持全屏

    最近在做项目的时候有需求要在 listView 中播放视频,并且支持横竖屏无缝切换,在网上搜索了一下,关于这种 demo真的很少, 有的也只是实现简单的功能,无法满足项目中的需求,想着修改一下凑合用, ...

  8. Android listView中的button点击事件

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

  9. Android listview 中嵌套 listview

    在 父listview中 adapter的 getview 中 设置 子listview 的 adapter 之后 添加下面方法,传入子listview. public void setListVie ...

  10. Android ListView中EditView再次焦点获取

    问题:在ListView中使用EditView,当第一次将焦点给到EditView的时候弹出小键盘.使得EditView失去焦点. 分析:因为在第一次使用EditView弹出小键盘之后,会重新的调用一 ...

最新文章

  1. poj 3045 Cow Acrobats (贪心!!不是二分,)
  2. 购买过php,【已解决】PHP项目需求:用户购买商品时,给上级发送一条通知(无限级下级会员)...
  3. cmake 编译curl源码_OpenCV4.0 源码编译
  4. Fiddler使用方法简介
  5. 在.Net如何制作自定义的快捷方式(转)
  6. [汇编语言]实验一:查看CPU和内存,用机器指令和汇编指令编程。
  7. python测试代码运行时间_在Python中准确地测量代码执行时间
  8. android框架揭秘之android中c++写的服务笔记
  9. MySQL技术内幕 InnoDB存储引擎 第2版 下载
  10. 软件测试接口测试测试用例模板
  11. 动态盘/基本盘互转:动态盘怎么转换基本盘?
  12. 爬虫出现Forbidden by robots.txt
  13. 跟随鼠标移动-demo
  14. 解决VMware虚拟机无法上网
  15. 自检zabbix健康脚本
  16. chunk和block 区别
  17. 三分钟教会你用U盘装系统,再也不用花钱重装了
  18. 【bzoj4292】 [PA2015]Równanie 乱搞
  19. iPhone 4s完美越狱 iOS 5.1 完美越狱 苹果越狱
  20. SAP PS 第13节 常用后台表总结

热门文章

  1. dimp是什么意思_单目标追踪论文阅读系列(八)——《DIMP(ICCV2019)》
  2. 电脑屏幕变黄如何调整_办公室照明设计如何避免踩坑,四个要点必须注意
  3. php invoke 反射,PHP ReflectionMethod invoke()用法及代码示例
  4. pythonATM,购物车项目实战3-视图函数
  5. FR复选框批量删除(填报)
  6. python中strptime函数_python datetime中strptime用法详解
  7. 大数据导论章节答案_苹果手机一般能用几年 一份大数据告诉你答案
  8. 调用css样式是不调用某个属性,CSS选择器可以引用另一个选择器属性吗?
  9. 2018-08-20nosql(memcached)笔记
  10. 传富士康将在印度建世界最大代工厂