基于地图的短信追踪小练习(6)对话框之item的删除
来源:互联网 发布:iphone mac连接 编辑:程序博客网 时间:2024/05/20 00:48
我们现在要点击item中的button弹出确认删除的对话框,点击确认之后删除listview中的对应item
初始思路:
重写onItemClick方法即可。
写完一点,发现没有动静!这不应该,百度发现是因为listview的item中有button,它抢占了点击事件的焦点。所以点击item是监听不到的。
解决方案:
在父布局中:
加入:
android:descendantFocusability="blocksDescendants"
在子控件(Button等)中加入
android:focusable="false"
可以避免焦点被抢占
那么,接着,我们要来实现item中的button的点击事件:
我们把适配器重新继承自baseadapter并且在getview中加入相关逻辑:
public class FriendsAdapter extends BaseAdapter { private int resourceId;private LayoutInflater mInflater;private Context context; private List<Friends> data = new ArrayList<Friends>(); public FriendsAdapter(Context context,ArrayList<Friends> data){this.context = context; this.data = data; this.mInflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return ListAll.friendslist.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent){ ViewHolder holder = null;if (convertView == null) {holder=new ViewHolder(); convertView = mInflater.inflate(R.layout.friends_list_item, null);holder.info = (TextView)convertView.findViewById(R.id.name_cell);holder.viewBtn = (Button)convertView.findViewById(R.id.delete_button_cell);convertView.setTag(holder);}else {holder = (ViewHolder)convertView.getTag();}holder.info.setText((String)ListAll.friendslist.get(position).getName());holder.viewBtn.setTag(position);holder.viewBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//showInfo(position); LayoutInflater inflater = getLayoutInflater(); layout = inflater.inflate(R.layout.dialog_delete,null); ad = new AlertDialog.Builder(FriendListActivity.this).setView(layout).show(); //点击勾勾,代表确认删除 button4 = (Button)layout.findViewById(R.id.btn_dialog_ok2); button4.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listView.setAdapter(adapter); ListAll.friendslist.remove(position); ad.dismiss(); } }); //点击叉叉,代表取消删除 button5 = (Button)layout.findViewById(R.id.btn_dialog_close2); button5.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ad.dismiss(); } });}});return convertView;}}删除用remove函数(position是获取到的角标),之后再重新刷一下,就可以了。
测试删除功能成功。
0 0
- 基于地图的短信追踪小练习(6)对话框之item的删除
- 基于地图的短信追踪小练习(5)对话框之item的添加
- 基于地图的短信追踪小练习(3)短信的接收与发送
- 基于地图的短信追踪小练习(1)百度地图的初创建
- 基于地图的短信追踪小练习(2)百度地图定位到自己的位置
- 基于地图的短信追踪小练习(4)主界面布局的一些内容
- 基于地图的短信追踪小练习(7)经纬度的设置与显示
- 基于地图的短信追踪小练习(8)地图覆盖物点击事件与活动间数据的传递
- 基于过程渲染的小地图shader
- 基于过程渲染的小地图shader
- 基于Vega的导弹追踪
- opencv之基于颜色空间的投影追踪
- 删除listview多个item时的小问题
- 基于Android的短信应用开发(七)——导航栏ActionBar显示与短信会话删除
- 基于Android的短信应用开发(八)——通过上下文菜单ContextMenu选中删除单条短信
- 基于位置的服务——百度地图SDK练习
- 用Qt练习C++写一个小的阶乘对话框
- js之【窗口事件和event对象】(有一个追踪鼠标定位的小栗子)
- Ubuntu配置hadoop单机+伪分布式环境+eclipse-- 配置hadoop单机环境(二)
- HTML学习速查(备忘)
- Python合并两个有序列表
- 三天根治腰酸背痛的传统养生法
- 多线程相关问题的整理
- 基于地图的短信追踪小练习(6)对话框之item的删除
- Zookeeper全解析——Client端(转)
- KMP算法
- RecycleView实现复杂的布局
- zookeeper系列之通信模型(转)
- Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案二
- 用斐波那契数列来说明递归和迭代的区别
- HBase使用场景和成功案例 (转)
- 建立流程绩效指标链的原则