通过代码获去listview的某一行(任意行)的item。

不是特指单击的某一行:lv.setOnItemClickListener(new OnItemClickListener()


通过getChildAt获取可能存在问题,导致应用挂起

如下易挂的代码

LinearLayout llTmp = (LinearLayout) lv.getChildAt(i);
ViewHolder vhTMP = (ViewHolder) llTmp.getTag();
strSelectData = (String) vhTMP.tvNo.getText();


原因:

getChildAt是获取当前“正在显示的”item(不是全部的item),所以对于listview假如存在滑动隐藏的item(很常见),再通过getChildAt(i)获取时,i可能会大于getChildCount,导致挂起。


解决参照如下,代码

public View getViewByPosition(int pos, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition
+ listView.getChildCount() - 1;


if (pos < firstListItemPosition || pos > lastListItemPosition) {
return listView.getAdapter().getView(pos, null, listView);
} else {
final int childIndex = pos - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}

更多相关文章

  1. Android获取View的内容图片
  2. android选择一张本机图片
  3. Android获取SHA1指纹
  4. 实现查询地址和路线导航的代码
  5. android 获取摄像头像素
  6. 系统相册分析(GallerPicker)
  7. Android使用SharedPreferences实现数据存储
  8. android几种图像之间转换
  9. Android(安卓)Studio 布局文件格式化代码

随机推荐

  1. Android:android定时开关机
  2. APK解剖方法
  3. 连载 | Android之Camera1实现相机开发
  4. 今日头条Android屏幕适配方式
  5. Android(安卓)UI优化—从Android渲染原理
  6. android app 快速接入银联支付流程(androi
  7. Intent介绍及Intent在Activity中的使用方
  8. 【Android】三星Galaxy S8及S8+的屏幕适
  9. Android(安卓)带文字的进度条,文字颜色随
  10. Android高手秘笈之View的绘制你应该知道