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