求代码:android listview checkbox 从数据库里读取数据后怎么设置相应的checkbox为选中状态 这样 你点击的时候 是不是 会获取一个view 通过这个view 获取你那个 checkbox 控件 然后setcheck 吧 就OK了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的代码是这样子的:每当遍历完毕的时候,要报错:java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1listData为绑定listview的list,list2为从数据库中查询出来的listview中可能包含的数据项,用listData里的item2与list2中的item0做比较,listData始终大于list2。// 重写View @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LayoutInflater mInflater = LayoutInflater.from(context); convertView = mInflater.inflate(R.layout.listviewitem, null); TextView xuhao = (TextView) convertView.findViewById(R.id.item_tv); xuhao.setText((String) listData.get(position).get("item0")); TextView jibenxinxi = (TextView) convertView.findViewById(R.id.jibenxinxi); jibenxinxi.setText((String) listData.get(position).get("item1")); TextView id = (TextView) convertView.findViewById(R.id.qnid); id.setText((String) listData.get(position).get("item2")); CheckBox check = (CheckBox) convertView.findViewById(R.id.qnselect); List<HashMap<String, String>> list2 = new ArrayList<HashMap<String, String>>(); list2 = new DBUtil().selectlistforguanlihuibi1(Users.useridforcs); if (list2.size() == 0) { Toast.makeText(manActivity.this, "您没有回避项目!", Toast.LENGTH_LONG).show(); } else { for (Map<String, String> m : listData) { for (String k : m.keySet()) { System.out.println(k + " : " + m.get(k)); /*if (k.equals("item2")) { System.out.println("已打分列表" + list2.get(position).get("item0") .toString()); System.out.println("整体列表" + m.get(k)); if (list2.get(position).get("item0").toString() .equals(m.get(k))) { System.out .println("ssssssssssssssssssssssssssssssssssssss"); check.setChecked(true); break; } }*/ } } } check.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if (isChecked) { state.put(position, isChecked); scount = scount +1; tvcount.setText("请选择30位,超出则无效,已经选择"+scount+"位,剩"+(35-scount)+"位"); } else { state.remove(position); scount = scount -1; tvcount.setText("请选择30位,超出则无效,已经选择"+scount+"位,剩"+(35-scount)+"位"); } } }); check.setChecked((state.get(position) == null ? false : true)); return convertView; } monkeyrunner 真机测试失败 手势 listview滚动条的底部判断 android新手求帮助 NDK学习 Android环境搭建 新手求问 android和iPhone的浏览器实现单击按钮自动复制文本到剪贴板功能 怎样避免同一个activity被打开多次? popupWindow 弹出另一个PopupWindow出现问题 准备把安卓APP外包出去,需要注意哪些呢?求教 软键盘的按键监听事件 怎么样获取asp页面中的所有数据显示到android控件中啊?
我的代码是这样子的:每当遍历完毕的时候,要报错:java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
listData为绑定listview的list,list2为从数据库中查询出来的listview中可能包含的数据项,用listData里的item2与list2中的item0做比较,listData始终大于list2。
// 重写View
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater mInflater = LayoutInflater.from(context);
convertView = mInflater.inflate(R.layout.listviewitem, null);
TextView xuhao = (TextView) convertView.findViewById(R.id.item_tv);
xuhao.setText((String) listData.get(position).get("item0"));
TextView jibenxinxi = (TextView) convertView.findViewById(R.id.jibenxinxi);
jibenxinxi.setText((String) listData.get(position).get("item1"));
TextView id = (TextView) convertView.findViewById(R.id.qnid);
id.setText((String) listData.get(position).get("item2"));
CheckBox check = (CheckBox) convertView.findViewById(R.id.qnselect);
List<HashMap<String, String>> list2 = new ArrayList<HashMap<String, String>>();
list2 = new DBUtil().selectlistforguanlihuibi1(Users.useridforcs);
if (list2.size() == 0) {
Toast.makeText(manActivity.this, "您没有回避项目!",
Toast.LENGTH_LONG).show();
} else {
for (Map<String, String> m : listData) {
for (String k : m.keySet()) {
System.out.println(k + " : " + m.get(k));
/*if (k.equals("item2")) {
System.out.println("已打分列表"
+ list2.get(position).get("item0")
.toString());
System.out.println("整体列表" + m.get(k));
if (list2.get(position).get("item0").toString()
.equals(m.get(k))) { System.out
.println("ssssssssssssssssssssssssssssssssssssss");
check.setChecked(true);
break; }
}*/
}
}
}
check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
state.put(position, isChecked);
scount = scount +1;
tvcount.setText("请选择30位,超出则无效,已经选择"+scount+"位,剩"+(35-scount)+"位");
} else {
state.remove(position);
scount = scount -1;
tvcount.setText("请选择30位,超出则无效,已经选择"+scount+"位,剩"+(35-scount)+"位");
}
}
});
check.setChecked((state.get(position) == null ? false : true));
return convertView;
}