转自: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. 独家 | 送你12个关于数据科学学习的关键提示(附链接)
  2. 美国进入紧急状态:谷歌投入1700名工程师上阵抗疫,马斯克称车祸比新冠病毒危险...
  3. laravel翻看php日志,关于Laravel的日志用法
  4. word List16
  5. string类的相关知识及部分操作
  6. android开发 存储权限,Android openFileOutput – 没有创建存储的权限
  7. dlna和miracast可以共存吗_同屏镜像功能哪家强?DLNA miracast等技术解读
  8. SPSSV20.0 下载及安装【SPSS 001期】
  9. FME入门视频教程:第三节 FME界面及常用设置
  10. mysql的脏数据_数据库的脏数据问题
  11. flash 围棋_中国卫视执白0.5目胜flash77
  12. 姚锦云:再论庄子传播思想与接受主体性:回应尹连根教授
  13. 股票指标接口合集 macd指标接口api kdj指标接口api,均线指标接口api,价格api
  14. 极狐阿尔法S 全新HI版在上海率先推送城区NCA
  15. 数据仓库卸数(网银系统数据库)
  16. 巨杉数据库MySQL_【SequoiaDB】5 巨杉数据库SequoiaDB基本操作
  17. numpy求矩阵特征值与特征向量
  18. 华为任正非最新发声:活下来!
  19. fluentd离线安装教程
  20. CAD怎么快速看图呢?怎么快速的查看建筑设计图纸呢?

热门文章

  1. java--小示例:-3-可以作为测试内容使用
  2. 帆软高级函数应用之层次坐标函数
  3. coco 数据集_PyTorch版YOLOv4更新了,适用于自定义数据集
  4. Confluence 6 配置草稿保存的时间
  5. java文件处理:文件流、上传、下载
  6. IDEA将web项目打成war包
  7. 戴尔服务器从东芝处获得闪存助力
  8. Unsafe与CAS
  9. mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作...
  10. Gartner 如何看 RASP 和 WAF?