ListView とボタンを備えたアクティビティがあります-「すべてクリア」と「OK」。「すべてクリア」ボタンで、アイテムのチェック状態をクリアします-正常に動作します。
m_list.setItemChecked(pos, false);
onItemClick で、複雑なビジネス ロジックに応じて、アイテム/チェック済み <-> チェックなし/の状態を変更しようとしています。Bussines レイヤーは、複数の項目についてチェックするかどうかを決定します。私は同じコードを試しています:
m_list.setItemChecked(position, bCheck);
機能していません。背後のデータは変更されているだけで、ビューは変更されていません。
「すべてクリア」コード:
@Override
public void onClick(View v)
{
if (v == m_map)
GoToMap();
else if (v == m_clear)
{
for (int i=0; i < m_poiCategories.size();i++)
m_list.setItemChecked(pos, false);
}
}
このコードは機能しません:
m_list.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> listView, View selectedItem, int position, long itemId)
{
boolean b = true;
....
m_list.setItemChecked(position, b);
}
});