最近公司的项目做好了之后,测试人员测试到一个bug就是多次点击的时候,应用会闪退,
原本以为是图片的oom,改了之后,测试人员还是测试到这个问题,于是去查看了日志,发现是下标越界的问题。
多次点击的时候发生了错位,那么就可能是适配器的问题,追踪到适配器,发现没什么问题 ,
那么可能就是发生在list的item的点击事件里面了。
追踪发现,原本我们的数据是全局变量,然后根据点击时候的位置类获取里面的数据,这样在多次点击的时候可能会发生错误
roomxx_lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String case_id = (String) map.get(arg2).get("case_id");
Intent intent = new Intent(Roomxx_Activity.this,
Roomxx_Ryhs_xx_Activity.class);
UpDate select = null;
String type = null;
于是我们对这段代码进行修改,直接调用里面的AdapterView<?> arg0来获取相对应的数据、
roomxx_lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Map<String, Object> map=(Map<String, Object>) arg0.getItemAtPosition(arg2);
String case_id = (String) map.get("case_id");//get(arg2)
Intent intent = new Intent(Roomxx_Activity.this,
Roomxx_Ryhs_xx_Activity.class);
UpDate select = null;
String type = null;
就这样就解决了多次点击之后会报错的问题。希望可以帮到大家