GridView.setOnItemClickListener не работает в GridView - PullRequest
3 голосов
/ 26 декабря 2011

Я пытаюсь создать приложение, которое динамически отображает список установленных приложений в виде сетки. Я могу отображать приложения в форме сетки, но не могу сделать эти значки приложений активными. Ничего не происходит, когда я нажимаю на эти значки. Код внутри setOnItemClickListener не срабатывает при событии щелчка.

Часть кода:

Имя класса dynamicgridactivity.java

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

        ViewHolder holder = (ViewHolder)v.getTag();  
        Log.i("view get tag" ,v.getTag().toString());

        if(holder == null) {  

              return;        } 


        Toast.makeText(dynamicgridactivity.this, "Hello", Toast.LENGTH_SHORT).show();    
                }    });

    }

Примечание. Значки и текст приложения на экране сетки отображаются динамически и не статично, как показано в примерах для Android.

Может ли кто-нибудь предложить мне надежный способ сделать элементы сетки кликабельными.

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Есть ли у вас какой-нибудь приемник щелчков на самой сетке или на любом из родительских элементов сетки или элементов сетки? Вы установили фокусировку или кликабельность на false для отдельных элементов сетки? Видите ли вы селектор вокруг предметов при нажатии на них?

Вы также можете попробовать установить представление onClickListener для каждого элемента в сетке (по общему признанию, менее эффективным).

Без возможности видеть xml или ваш адаптер, будет немного сложно догадаться.

1 голос
/ 26 декабря 2011

Необходимо проверить объявление mGridMain.Может быть, мнение о родителе неверно

0 голосов
/ 18 октября 2012

Просто убедитесь, что у вас нет прослушивателей itemclick нигде в сетке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...