ここに私の問題があります: カスタム ArrayAdapter を持つ ListView があります:
の私のリストonCreate()
:
list = /*some list*/
listView = (ListView) findViewById(R.id.some_list);
listView.setAdapter(new MapListAdapter(this, R.layout.custom_list_item, list));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listView.setItemChecked(position, true);
}
});
mapListView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
public boolean onPrepareActionMode(...) {
// some unrelated working code
}
@Override
public void onDestroyActionMode(...) {
// some unrelated working code
}
@Override
public boolean onCreateActionMode(...) {
// some unrelated working code
}
@Override
public boolean onActionItemClicked(...) {
// some unrelated working code
}
@Override
public void onItemCheckedStateChanged(...) {
// some unrelated working code
}
});
私のカスタムArrayAdapterのgetView(...)
:
@Override
public View getView (int position, View view, ViewGroup parent) {
view = (LinearLayout) inflater.inflate(layoutId, null);
final ListItem entry = getItem(position);
// setting some textviews here and so on...
CheckBox checkBox = (CheckBox) view.findViewById(R.id.m_l_i_checkbox);
// my problem ^
return view;
}
特定のリスト項目が選択されていることはわかっています。なぜなら、それらを選択すると ActionMode バーが表示され、すべての項目を選択解除 (トグル) すると消えるからです。ただし、実際に選択されているかどうかを示す checkBox が必要です。では、どうすればいいですか?android.R.single_list_item_multiple_choice とデフォルトの ArrayAdapter で問題なく動作しますが、カスタムのものを使用したいと考えています。多分私は何か間違っているので、それを行う別の方法がありますか?