Как я могу отключить OnItemClick () в списке элементов в Android?

1

Как отключить OnItemClick(), как только элемент списка нажат? Я пытаюсь отобразить список элементов в виде сетки. После того, как пользователь нажмет на один элемент, ему не удастся снова щелкнуть на том же элементе и вызвать действие onClick во второй раз.

Теги:

4 ответа

2

Думаю, вам нужно сыграть в трюк. Что вам нужно сделать, так это внутри onItemClickListener вы сохраняете список элементов, которые вы нажимаете. Используйте аргумент позиции.

 lv.setOnItemClickListener(new OnItemClickListener() {      
 public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
 }

Теперь, когда элемент кликается, вы проверяете, был ли этот элемент нажат раньше, если его крик до этого ничего не делает (вы можете выполнить свою собственную задачу, когда его снова щелкнете), иначе, если его щелкнуть в первый раз, тогда вы должны выполните две задачи: 1. Отметьте свою запись в кликах 2. Сделайте нужную задачу.

0

Спасибо всем. Да, идея Картика будет работать нормально. Я решил это следующим образом:

 gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            if(position==0){
                if(click1==0){
                point+=125;
                Toast.makeText(Rewards.this, "125 points added", Toast.LENGTH_SHORT).show();
                click1++;
                }
                else{
                    isEnabled(position);
                }                   
            }

 public boolean isEnabled(int position) { 
        boolean val=true;
        if(position==0){
            val=false;      
        }
 return val;
 }

Вы можете использовать ту же логику для всех позиций, и она отлично работает.

0

Изменить: я неправильно понял вопрос. Следующие блокируют реакцию на весь список, а не на конкретный элемент. Ответ Kartik намного лучше.

list.setClickable(false) должен делать трюк

http://developer.android.com/reference/android/view/View.html#setClickable(boolean)

0

U нужно поддерживать некоторые clickcount, чтобы сделать это, я думаю. cos каждый раз, когда вы нажимаете на него. Он будет вызывать onItemClick() иначе u может сделать clickable false для позиции, в которой он был нажат..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню