ListView点击Item其他Item响应的错误笔记
2015-10-10 11:47
183 查看
在编写一个ListView的时候里面有一个按钮.在Adapter里设置了点击事件.
但是在点击一个Item的时候发现响应的是另一个Item, position检查之后也没有出错,困扰了很久, 以下是getView源代码
但是在点击一个Item的时候发现响应的是另一个Item, position检查之后也没有出错,困扰了很久, 以下是getView源代码
public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub // 自定义视图 ListItemView listItemView = null; if (arg1 == null) { listItemView = new ListItemView(); // 获取listitem布局文件 arg1 = listContainer.inflate(R.layout.list_item_warn, null); // 获取控件对象 listItemView.tv1 = (TextView) (arg1.findViewById(R.id.tv11)); listItemView.tv2 = (TextView) (arg1.findViewById(R.id.tv22)); listItemView.tv3 = (TextView) (arg1.findViewById(R.id.tv33)); listItemView.tv4 = (TextView) (arg1.findViewById(R.id.tv44)); listItemView.tv5 = (TextView) (arg1.findViewById(R.id.tv55)); listItemView.tv6 = (TextView) (arg1.findViewById(R.id.tv66)); // 设置空间集到arg1 arg1.setTag(listItemView); } else { listItemView = (ListItemView) arg1.getTag(); } // 设置空间内容 listItemView.tv1.setText((String) listItems.get(arg0).get("title")); listItemView.tv2.setText((String) listItems.get(arg0).get("text")); listItemView.tv3.setText((String) listItems.get(arg0).get("date")); listItemView.tv5.setText((String) listItems.get(arg0).get("reason")); listItemView.tv6.setText((String) listItems.get(arg0).get("id")); try { Date date = new SimpleDateFormat("yyyy-MM-dd") .parse((String) listItems.get(arg0).get("date")); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)); date = calendar.getTime(); Date current = new Date(); final int position = arg0; if (date.before(current)) { listItemView.tv4.setVisibility(0); listItemView.tv5.setVisibility(0); if(listItemView.tv5.getText().toString().equals("回访未完成原因:(点击此行添加)")){ listItemView.tv5.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub reasonLayout.setVisibility(View.VISIBLE); addreasonbtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Thread thread = new Thread(){ @Override public void run() { // TODO Auto-generated method stub try { if (new VisitUtils().insertReason(reasonEditText.getText().toString(),listItems.get(position).get("id").toString(), WarnActivity.this)) { Message msg = handler.obtainMessage(); msg.what = INSERT_REASON_SUCCESS; handler.sendMessage(msg); } else { System.out.println("插入失败"); } } catch (HttpResponseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block Message msg2 = handler.obtainMessage(); msg2.what = INSERT_FAIL; handler.sendMessage(msg2); e.printStackTrace(); } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; thread.start(); }}); }}); }else{ listItemView.tv5.setClickable(false); } } <span style="color:#ff0000;">else { listItemView.tv4.setVisibility(8); listItemView.tv5.setVisibility(View.GONE); }</span> } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println(e + "!!!warn activyty 313"); } return arg1; }后来加上else问题解决了, 代码中红色标注部分
相关文章推荐
- ORM框架:EF与NHibernate了解
- linux查看磁盘占用情况
- 网虚拟主机----云服务器
- Android测量每秒帧数Frames Per Second (FPS)的方法
- springmvc传递参数
- Android UI模板设计 TopBar 标题栏的设计
- Material Design中设置返回箭头的颜色
- android——Snackbar+CoordinatorLayout替代Toast
- 我的进阶曲线之二
- Redis --- Sentinel
- 数据结构 - AVL木
- linux常用命令总结
- 提高篇:Linux(附答案)
- Kettle定时任务(V4.1)
- 为你的网站开启 gzip 压缩功能(nodejs、nginx)
- 数据库基础问答Q&A
- Windows安装Python图像处理库:PIL模块
- 高仿微信对话列表滑动删除效果
- android 雷达UI
- Android内存优化之OOM全解