У меня есть ListView с некоторыми элементами, и я хочу иметь разные ответы, когда я делаю itemClick
(короткое нажатие) и в itemLongClick
(длительное нажатие):Short/Длительное нажатие на элемент в ListView
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//play file
}
});
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
//Message
Toast.makeText(getBaseContext(), "FILE: "+itemsFiles.get(position).getName(), Toast.LENGTH_LONG).show();
return false;
}
});
Когда я делаю короткое нажатие (onItemClick()
), мое приложение работает хорошо, и оно воспроизводит файл. Моя проблема в том, что я делаю длинное нажатие (onItemLongClick()
), потому что появляется сообщение с Toast, но оно также играет в файл, и я не хочу играть в файл в этом случае ... Как я могу его решить и правильно отличить эти два случая?
Большое спасибо.
-1 для не чтение документации: пожалуйста, проверьте документацию 'AdapterView.OnItemLongClickListener', что она должна возвратов и почему? – Selvin
Попробуйте вернуть 'true' в методе onItemLongClick. – pawelo
@Selvin Мне очень жаль этот глупый вопрос. Уверяю вас, что я прочитал документацию, но я не понял, как вернул метод: ** true, если обратный вызов потреблял длинный клик, в противном случае - false Из-за вашего тупого ответа перечитайте его внимательно и поняли ошибку. – KryNaC