Я пытаюсь создать контекстное меню для своего списка, поэтому, когда пользователь долго нажимает строку, появляется контекстное меню, и когда пользователь выбирает параметр, строка выбирается. Однако выбрано много строк, оно повторяет выбор в шаблоне для других строк в списке.Повторяющийся выбор ListView
То же самое происходит, когда я просто нажимаю строку. IDK, если это проблема с переработкой вида просмотра или что.
Как решить обе проблемы, так как первый обрабатывается внутри onContextItemSelected(MenuItem item)
поэтому я управляю строку манипулируя MenuItem
объект, а второй обрабатывается в AdapterView.OnItemClickListener
.
BTW, я использую 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);
}
}
Какова ваша конечная цель: изменить цвет фона на длинный клик? Или больше? – Sam
@Sam меняет фон строки, на которую я долго нажимал (после выбора опции из контекстного меню, созданного LongClick), и измените фон строки, которую я просто нажал. – rogcg
Проверьте фокус для строк и посмотрите, что произойдет – SpicyWeenie