是否有可能以编程方式访问CheckedTextViews列表中的特定行以更改其文本框的状态?以编程方式访问CheckedTextView列表中的特定行 - Android
我的程序有一个listview,它有几个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方法中,我记得从数据库中检查过的项目,但我不知道如何行进返回到listview元素的id。我可以做些什么:
listView.getElementById(id_from_database).setChecked
?
我知道我不能使用的getElementById,但我在这里要说明我的意思事先
感谢
凯文
的事情是我没有在现在的位置是德产品的,我只有它的ID,这让我想知道是否有一些可以访问ListView项方法(在这种情况是一个CheckedTextView)通过它的id。 – 2010-08-24 14:47:51
可能位置是适配器中的位置。如果您循环使用适配器,并且找到选中的项目,则可以调用该方法。这只是一个循环。 – Pentium10 2010-08-24 20:30:06
并非如此,如果我在适配器中有20个项目,并且我需要检查其中的10个项目,我仍然必须检查适配器中的每个项目,以反映每个需要检查的项目,这需要嵌套循环 – 2010-08-25 07:20:45