2014-10-24 3 views
0

У меня есть 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, но оно также играет в файл, и я не хочу играть в файл в этом случае ... Как я могу его решить и правильно отличить эти два случая?

Большое спасибо.

+2

-1 для не чтение документации: пожалуйста, проверьте документацию 'AdapterView.OnItemLongClickListener', что она должна возвратов и почему? – Selvin

+1

Попробуйте вернуть 'true' в методе onItemLongClick. – pawelo

+0

@Selvin Мне очень жаль этот глупый вопрос. Уверяю вас, что я прочитал документацию, но я не понял, как вернул метод: ** true, если обратный вызов потреблял длинный клик, в противном случае - false Из-за вашего тупого ответа перечитайте его внимательно и поняли ошибку. – KryNaC

ответ

Смежные вопросы