リストビューのコンテキストメニューを作成しようとしているので、ユーザーが行を長押しするとコンテキストメニューが表示され、ユーザーがオプションを選択すると行が選択されます。ただし、多くの行が選択されている場合は、リストビュー内の他の行に対してパターンで選択が繰り返されます。
行をクリックするだけでも同じことが起こります。ビューのリサイクルに問題がある場合はIDK、または何。
両方の問題を解決する方法。最初は内部で処理されるため、オブジェクトonContextItemSelected(MenuItem item)
を操作して行を管理し、2番目はで処理されます。MenuItem
AdapterView.OnItemClickListener
ところで、私はCursorAdapterを使用してListViewにデータを入力しています。
ありがとう。
これが私のコードです:
// Listener for the click on the items in the ListView
mListViewListener = new AdapterView.OnItemClickListener()
{
// When the user clicks some item, the Activity that shows the available dates will be shown
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long arg3)
{
view.setBackgroundColor(0xff333333);
}
};
// Handle the LongClick on the row
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, view, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.contact_options, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item)
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId())
{
case R.id.context_menu_item:
info.targetView.setBackgroundColor(0xff333333);
default:
return super.onContextItemSelected(item);
}
}