Android – ListView 中添加按钮,动态删除添加ItemView的操作
要实现添加按钮的操作,必须自定义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的操作相关推荐
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
- android ListView中含有按钮事件实时更新ListView数据案例-1
1.布局文件Listview <?xml version="1.0" encoding="utf-8"?> <android.support. ...
- android开发中为MultiAutoCompleteTextView控件添加其他分隔符
android开发中为MultiAutoCompleteTextView控件添加其他分隔符,例如:分隔符改为分号";" zs;ls;ww;xm //SemicolonTokeniz ...
- android listview中item通过viewpager实现
android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...
- matlab中run按钮是灰色的,Android Studio中Run按钮是灰色的快速解决方法
首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project.Models)相关代码里调过来就好.之前的文章里有说过. 经过调好gradle这些文件,AS ...
- Android ListView中CheckBox选中状态失效的最佳解决方案
Android ListView中CheckBox选中状态失效: 在ListView中某一项滑到显示区外部的时候,重新划回来时其中的CheckBox的选中状态会重置,本文提出了一种解决方案,操作起来快 ...
- android listview中播放视频,支持全屏
最近在做项目的时候有需求要在 listView 中播放视频,并且支持横竖屏无缝切换,在网上搜索了一下,关于这种 demo真的很少, 有的也只是实现简单的功能,无法满足项目中的需求,想着修改一下凑合用, ...
- Android listView中的button点击事件
如果listView中的item有button控件,那么如何获取listView中的button控件?又如何在点击button时定位当前的item? 在listview中的listitem设置事件响应 ...
- Android listview 中嵌套 listview
在 父listview中 adapter的 getview 中 设置 子listview 的 adapter 之后 添加下面方法,传入子listview. public void setListVie ...
- Android ListView中EditView再次焦点获取
问题:在ListView中使用EditView,当第一次将焦点给到EditView的时候弹出小键盘.使得EditView失去焦点. 分析:因为在第一次使用EditView弹出小键盘之后,会重新的调用一 ...
最新文章
- poj 3045 Cow Acrobats (贪心!!不是二分,)
- 购买过php,【已解决】PHP项目需求:用户购买商品时,给上级发送一条通知(无限级下级会员)...
- cmake 编译curl源码_OpenCV4.0 源码编译
- Fiddler使用方法简介
- 在.Net如何制作自定义的快捷方式(转)
- [汇编语言]实验一:查看CPU和内存,用机器指令和汇编指令编程。
- python测试代码运行时间_在Python中准确地测量代码执行时间
- android框架揭秘之android中c++写的服务笔记
- MySQL技术内幕 InnoDB存储引擎 第2版 下载
- 软件测试接口测试测试用例模板
- 动态盘/基本盘互转:动态盘怎么转换基本盘?
- 爬虫出现Forbidden by robots.txt
- 跟随鼠标移动-demo
- 解决VMware虚拟机无法上网
- 自检zabbix健康脚本
- chunk和block 区别
- 三分钟教会你用U盘装系统,再也不用花钱重装了
- 【bzoj4292】 [PA2015]Równanie 乱搞
- iPhone 4s完美越狱 iOS 5.1 完美越狱 苹果越狱
- SAP PS 第13节 常用后台表总结
热门文章
- dimp是什么意思_单目标追踪论文阅读系列(八)——《DIMP(ICCV2019)》
- 电脑屏幕变黄如何调整_办公室照明设计如何避免踩坑,四个要点必须注意
- php invoke 反射,PHP ReflectionMethod invoke()用法及代码示例
- pythonATM,购物车项目实战3-视图函数
- FR复选框批量删除(填报)
- python中strptime函数_python datetime中strptime用法详解
- 大数据导论章节答案_苹果手机一般能用几年 一份大数据告诉你答案
- 调用css样式是不调用某个属性,CSS选择器可以引用另一个选择器属性吗?
- 2018-08-20nosql(memcached)笔记
- 传富士康将在印度建世界最大代工厂