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.getElementById(id_from_database).setChecked
?
getElementById を使用できないことはわかっていますが、意味を示すためにここにあります
前もって感謝します
ケビン