我的工程里面一个activity有两个有圆角的listview,就是 自定义的 CornerListView继承ListView, 然后 我想圆角的listview A点击之后一个item会高亮 然后B点中的item时B中的item保持高亮,同时中的高亮item不高亮,也就是说,多个ListView只有一个item高亮。 此时要用到适配器的notifyDataSetChanged()方法,因为adapter.notifyDataSetChanged();是把getview方法重新走了一遍,所以,刷新了就没了以前的高亮操作,达到效果。当然,我在点A的item时去刷新B,这样就只会有A的item高亮了。
没有加notifyDataSetChanged()方法
1 @Override 2 public void onItemClick(AdapterView<?> listview, View view, int position, 3 long id) { 4 5 if (listView1==listview) { 6 //this.adapter2.notifyDataSetChanged(); 7 8 9 }else if(listView2==listview){ 10 //this.adapter1.notifyDataSetChanged(); 11 12 } 13 14 }
效果如下
去掉上面的注释之后效果如下