Ответ 1
В вашем пользовательском методе ArrayAdapter overide isEnabled следуйте
@Override
public boolean isEnabled(int position) {
return false;
}
Я пытаюсь отключить несколько событий щелчка в списке, скажем, после нажатия первого щелчка на некоторых носителях воспроизводится из webservice, в то время как он воспроизводится, другие элементы должны быть clickable==false
, после того, как медиа было воспроизведено, другие элементы списка могут быть кликабельными.
То, что я пытаюсь, вызывает setClickable(true)
и setClickable(false)
в ListView
Object.
В вашем пользовательском методе ArrayAdapter overide isEnabled следуйте
@Override
public boolean isEnabled(int position) {
return false;
}
Создайте свой собственный подкласс ArrayAdapter, который AreAllItemsEnabled() возвращает false и определяет isEnabled (int position), чтобы вернуть false для данного элемента в те, которые вы хотите отключить.
Добавьте это в xml
android:listSelector="@android:color/transparent"
создайте адаптер для этого списка и замените этот метод
public boolean isEnabled(int position);
затем верните false
, если вы хотите отключить клик
before onCreate:
private long mLastClickTimeListViewItem = 0;
Чтобы предотвратить множественные клики по элементам ListView
После того, как onCreate внутри слушателя для listView, в моем случае следующее:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (SystemClock.elapsedRealtime() - mLastClickTimeListViewItem < 1000){
return ;
}
mLastClickTimeListViewItem = SystemClock.elapsedRealtime();
//Do your remaining code magic below...
....
....
} // end of onItemClick method
}); // end of setOnItemClickListner
Управление событием Click с использованием флагов.
Пока ваш медиаплеер работает, установите этот параметр нажатием на false, используя этот метод.
setClickable(false);
Когда ваш медиаплеер остановлен или не запущен, или полностью установите этот флаг в значение по умолчанию.
setClickable(true);
вышеупомянутые ответы не сработали для меня, поэтому я использовал list.setEnabled(false)
Сработал у меня
Или простым способом зарегистрировать и зарегистрировать OnItemClickListener может быть лучшая идея.
Если вы хотите, чтобы только элементы с диагональю можно было щелкнуть и показать соответствующий цвет селектора, используйте строку
Android: listSelector = "@андроид: цвет/прозрачный"
в вашем списке в файле макета (xml)