净坛腐儒 2016-07-31 11:29 采纳率: 43.8%
浏览 1301
已结题

ListView点击事件异常

自己写了一个小应用,在定时器中定时更新list,在handle中刷新ListView,同时ListView还有一个点击响应事件,现在点击LIstView时,偶尔会出现如下异常:
图片说明
不知道是什么原因,还请给位前辈指教!谢谢!
图片说明

 ListView lv = (ListView)findViewById(R.id.listView1);
        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

                TextView tv0 = (TextView)findViewById(R.id.textview0);
                TextView tv1 = (TextView)findViewById(R.id.textview1);
                TextView tv2 = (TextView)findViewById(R.id.textview2);
                TextView tv3 = (TextView)findViewById(R.id.textview3);
                ImageView img = (ImageView)findViewById(R.id.imageView1);

                List<Map<String, Object>> listenList = tempList;
                String name = listenList.get(arg2).get("itemName").toString();//从选中的item(map)中取出姓名
                tv1.setText(" 姓名:"+name);

                int k = 0;
                Sheet sheet = null;
                try{
                    Workbook wb = Workbook.getWorkbook(xlsFile);
                    sheet = wb.getSheet(0);
                    /*Cell[] col1Arr = sheet.getColumn(1);

                    for(k=1;k<sheet.getRows();k++){
                        if(col1Arr[k].getContents() == name){
                            break;
                        }
                    }*/
                    for(k=1;k<sheet.getRows();k++){
                        if(sheet.getCell(1, k).getContents().equals(name)){//.equals(),面向对象方法
                            break;
                        }
                    }

                }catch(IOException e){
                    e.printStackTrace();
                }catch(BiffException e){
                    e.printStackTrace();
                }

                String cardID = sheet.getCell(0, k).getContents();//0列k行
                tv0.setText(" 卡号:"+cardID);

                String age = sheet.getCell(2, k).getContents();//2列k行
                tv2.setText(" 年龄:"+age);

                String depart = sheet.getCell(3, k).getContents();//3列k行
                tv3.setText(" 部门:"+depart);

                String photoPath0 = Environment.getExternalStorageDirectory().toString() + "/picSrc/";
                String photoPath = String.format("%s%s.bmp",photoPath0,name);
                Bitmap bitmap = getLoacalBitmap(photoPath);
                img.setImageBitmap(bitmap);

            }
        });
  • 写回答

4条回答 默认 最新

  • 净坛腐儒 2016-07-31 11:30
    关注

    我的想法是,点击响应事件在主线程中,更新ListView操作同样在主线程中,这样在一些情况下就会出现冲突,不知道是不是这个原因,如果是的话,该如何解决呢,谢谢!

    评论

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多