ListView空指针
来源:互联网 发布:软件下载源码 编辑:程序博客网 时间:2024/06/17 12:13
ListView空指针解决方案
问题描述:
1.明明点击的是第二条数据,结果显示你点击的是第三条!?
2.明明手动测试完全OK,结果monkey(可恶的猴子 - -!!!)测试各种空指针?
如图:
究竟是虾米原因呢??!
解答
ListView添加头布局导致。listView.addHeadView(mHeadView);
listView添加每头布局后,会将期视为一个条目,加入自己。
listView添加每头布局后,会将期视为一个条目,加入自己。
listView添加每头布局后,会将期视为一个条目,加入自己。
重要的事情说三遍。~~ -_ - ~~
代码:
private void initView() {
mListView = (ListView) findViewById(R.id.activity_listview);
nums = 3;
for (int i = 0; i < nums; i++) {
TextView headView = new TextView(this);
headView.setGravity(Gravity.CENTER);
headView.setText("我是头布局" + i);
mListView.addHeaderView(headView);
}
}
加入三个头布局。
解决方案:
一.直接通过AdapterView获取数据,并跳转(推荐)
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String dataStr = (String) parent.getItemAtPosition(position);
Intent intent = new Intent(this, TextDetail.class);
intent.putExtra("test", dataStr);
startActivity(intent);
}这个方案最佳。
需要复写实现所用Adapter的getItem(postion)方法。
@Override
public T getItem(int position) {
if(dataList == null || dataList.isEmpty()) return null;
if(dataList instanceof List){
return ((List<T>) dataList).get(position);
}
if(dataList instanceof Set){
return new ArrayList<T>(dataList).get(position);
}
return null;
}
第二种方案:对数据集进行处理。
需要依据加入头布局的个数,进行处理。
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mDatas != null && position >= nums) {
System.out.println("position = " + position);
position -= nums;
String dataStr = mDatas.get(position);
Intent intent = new Intent(this, TextDetail.class);
intent.putExtra("test", dataStr);
startActivity(intent);
}
}
- ListView空指针
- listView.removeFooterView(View)报空指针 ...
- listView.removeFooterView(View)报空指针
- 自定义listview的ArrayAdapter报空指针
- 解决listView.setAdapter()出现空指针异常
- 可怕的逻辑错误,ListView中的空指针
- listView.removeFooterView(View)报空指针的奇异问题
- 为ListView添加适配器时,出现空指针异常
- android 4.0.x listview的一个空指针问题
- ListView绑定适配器空指针问题发生的原因
- 【Android】自定义ListView的Adapter报空指针异常解决方法
- ListView在下拉时出现空指针错误
- 关于listView.setAdapter(adapter)报空指针异常的问题
- ScrollView嵌套ListView,.measure(0,0);空指针NullException
- ListView.setAdapter(adapter);空指针异常的问题
- ScrollView嵌套ListView 在某些机型报空指针问题
- Listview item.measure(0, 0);报空指针时问题
- listview下item获取控件空指针异常
- linux系统中如何查看日志 (常用命令)
- java获取两个字符串中的最大匹配
- Java基础之多线程
- 3538: [Usaco2014 Open]Dueling GPS
- 【Machine Learning】3.多元线性回归
- ListView空指针
- sort/uniq/cut/wc/
- 黑马程序员---IO流(二)
- ARM、DSP、FPGA的区别
- [Leetcode]H-Index
- 两线程交替打印数字
- JavaScript高级程序设计之DOM之DOM 操作技术之使用NodeList第10.2.4讲
- 正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
- WPF基础入门