净坛腐儒 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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试