净坛腐儒 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 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab