是否可以以编程方式访问 CheckedTextViews 列表中的特定行以更改其文本框的状态?
我的程序有一个列表视图,其中有几个 CheckedTextViews,用户可以按下它们来切换状态。
我想在用户离开活动时保存复选框的状态,所以我在我的 onPause 方法中有:
public void onPause(){
super.onPause();
SparseBooleanArray positions;
positions = listView.getCheckedItemPositions();
ListAdapter items = listView.getAdapter();
int j = items.getCount();
ArrayList<Long> ids = new ArrayList<Long>();
for (int k =0; k < j;k++){
if(positions.get(k)==true){
ids.add(items.getItemId(k));
}
}
this.application.getServicesHelper().open();
this.application.getServicesHelper().storeServices(ids,visit_id);
this.application.getServicesHelper().close();
}
它非常简单地迭代列表视图,将选中的项目添加到 ArrayList,然后将该 ID 列表保存到数据库中。
一旦用户返回该活动,我的问题就在于尝试重置列表。
到目前为止,在我的 onStart 方法中,我记得从数据库中检查的项目,但我不知道如何将 id 返回到 listview 元素。我可以做类似的事情:
listView.getElementById(id_from_database).setChecked
?
我知道我不能使用 getElementById 但我在这里展示了我的意思
提前致谢
凯文