android: как удалить строку из ListView с помощью кнопки удаления в строке

Я знаю, что существует множество потоков с более или менее одинаковой темой, но ни один из них не охватывает мою ситуацию:

Я заполняю свой 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, но это не помогло.

Заранее благодарим вас за ответы.

7
задан Engin Yapici 20 October 2011 в 05:06
поделиться