Android中ExpandableListView中子局部刷新

雷杰-- 2014-10-15 02:44:01
现在写的项目中有一个筛选的功能,用到了系统自带的ExpandableListView。想要实现用户选择之后,再次打开Group选项,实现回显的功能(控件是CheckBox),回显的表现就是CheckBox的背景颜色发生改变。现在遇到的问题是背景颜色设置了,但是页面上没有变化。如果我设置setText,输出的时候值的确是变化了,但页面上依然没有变化。请问ExpandableListView中Group如何局部刷新呢?

// 设置只显示一个Group
choose_list.setOnGroupExpandListener(new OnGroupExpandListener() {

@Override
public void onGroupExpand(int groupPosition) {
// TODO Auto-generated method stub
for (int i = 0; i < adapter.getGroupCount(); i++) {
if (groupPosition != i) {
//Group收起
choose_list.collapseGroup(i);
//这个在这没用
first = 0;
//我这里选中某个CheckBox后,选中的结果放在一个TextView中,you_want[groupPosition]表示被选中的字段,如
//有1 2 3 4四个选项,我选了"1" "3",那么you_want[groupPosition]的值就是"1 3"
String hasChoose = you_want[groupPosition];
//map_check是一个new HashMap<Integer, CheckBox[]>(); checkBoxs表示的是对应position布局中的所有checkBox选项组成的数组
CheckBox[] checkBoxs = map_check.get(groupPosition);
//我目标的TextView的默认值是“全部”,如果不是全部,则肯定是选了别的选项。
if(!(hasChoose.indexOf("全部")!=-1)){
Toast.makeText(MainActivity.this,"groupPosition="+groupPosition, Toast.LENGTH_SHORT).show();
for(int j =0;j<checkBoxs.length;j++){
//获取对应位置checkBoxs中所有选项的文本
String x = (String) checkBoxs[j].getText();
System.out.println(x);
//根据文本值查找textView的文本是否包含checkBoxs中的文本,意思就是根据字符来判断,如果"1 3" 中有1,则代表1的这个CheckBox是被选中的
if(hasChoose.indexOf(x)!=-1){
//这句话输出了
System.out.println("变色变色");
//这个值也改了。
checkBoxs[j].setText("ddd");
//改变图标的背景颜色 (但是这句话没有效果)
checkBoxs[j].setBackgroundColor(Color.rgb(47,166, 221));
//这个也没有效果。
checkBoxs[j].setSelected(true);
}
}
}

}
}
}
});



...全文
551 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
明日辉黄2 2014-10-29
  • 打赏
  • 举报
回复
引用 6 楼 u010411826 的回复:
引用 5 楼 Crazy9599 的回复:
引用 4 楼 u010411826 的回复:
你换一个view试下,不用checkBox
view跟checkBox有啥区别么。用checkBox可以记录下用户选择的状态,下次回显方便。
checkbox和listview共用的话会出现数据混乱的情况,尤其当数据超过一屏时
混乱是你代码没写好
糖果猪猪 2014-10-21
  • 打赏
  • 举报
回复
引用 5 楼 Crazy9599 的回复:
引用 4 楼 u010411826 的回复:
你换一个view试下,不用checkBox
view跟checkBox有啥区别么。用checkBox可以记录下用户选择的状态,下次回显方便。
checkbox和listview共用的话会出现数据混乱的情况,尤其当数据超过一屏时
雷杰-- 2014-10-17
  • 打赏
  • 举报
回复
引用 4 楼 u010411826 的回复:
你换一个view试下,不用checkBox
view跟checkBox有啥区别么。用checkBox可以记录下用户选择的状态,下次回显方便。
糖果猪猪 2014-10-16
  • 打赏
  • 举报
回复
你换一个view试下,不用checkBox
雷杰-- 2014-10-16
  • 打赏
  • 举报
回复
引用 2 楼 pzb888 的回复:
对我有用........
--。一起探讨哇
pzb888 2014-10-15
  • 打赏
  • 举报
回复
对我有用........
雷杰-- 2014-10-15
  • 打赏
  • 举报
回复

再打开之后页面是这样。虽然值变了,背景也设置了。但看不出效果

80,353

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧