Я знаю, что существует множество потоков с более или менее одинаковой темой, но ни один из них не охватывает мою ситуацию:
Я заполняю свой ListView с помощью настраиваемого адаптера CursorAdapter, используя свои настраиваемые строки. У меня есть два состояния для ListView: первое состояние состоит только из текста в строках; во втором состоянии в каждой строке есть кнопка удаления. Переключение между двумя состояниями - это кнопка в нижней части представления.
Я пытаюсь достичь следующего: в первом состоянии, когда я нажимаю на строку, экран должен переключаться на другое представление. Во втором состоянии, когда я нажимаю кнопку удаления, выбранная строка должна быть удалена из базы данных, ListView должен быть повторно заполнен, и ничего не должно произойти, если я нажму на любую другую часть строки, кроме кнопки удаления.
Я знаю, как удалить элемент и повторно заполнить ListView после этого, и я знаю, как переключиться на другое представление, когда я нажимаю строку в первом состоянии; но я не мог совместить их. Я использую следующий метод для получения идентификатора и позиции строки:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Code goes in here either for deleting or switching into another view
}
Я пытался использовать некоторые операторы if, чтобы получить условие для нажатия кнопки удаления или для щелчка строки, но это не сработало.
Первый вопрос очевиден: как я могу заставить его работать?
Второй вопрос: во втором состоянии, когда нажата любая часть строки, кроме кнопки удаления, экран переключается на другое представление.Как я могу предотвратить это? Я попытался установить для атрибутов .setClickable, .setPressed, .setSelected строки значение false, но это не помогло.
Заранее благодарим вас за ответы.