в виде сетки не отображаются все элементы, вместо позиции в андроиде отображается элемент позиции 0 - PullRequest
2 голосов
/ 13 июня 2011

пожалуйста, обратитесь по ссылке ... http://mytelcoit.com/2010/02/programming-android-create-icon-with-text-using-gridview-and-layout-inflater/

Код по этой ссылке работает хорошо до ограниченного числа, которое возвращается в getCount (). Но когда я даю большое значение для ex. 55, перед возвратом в getCount (), на эмуляторе в позиции 23 (т. Е. Профиль 24) не отображается. Вместо него отображается профиль 0 ... Просто попробуйте выполнить код, и вы получите меня лучше. . Просто внесите одно изменение в вышеуказанный код ссылки вместо 5 в getCount () типа 55. И запустите и посмотрите .. Если вы найдете какое-либо решение .. Пльцз, дайте мне знать. Надеюсь, вы мне поможете.

1 Ответ

1 голос
/ 26 июня 2011

Каждый раз, когда платформа повторно использует представление (т. Е. Объект convertView, предоставленный методу getView(), не равен нулю), вы должны найти соответствующие представления и установить их свойства.

В примере кода по указанной ссылке автор устанавливает значения для представления только во время создания, поэтому каждый раз, когда фреймворк повторно использует представление, оно имеет одинаковые свойства. Поэтому метод getView() должен быть реализован так:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v;
        if(convertView==null){
            LayoutInflater li = getLayoutInflater();
            v = li.inflate(R.layout.icon, null);
        }
        else
        {
            v = convertView;
        }
        TextView tv = (TextView)v.findViewById(R.id.icon_text);
        tv.setText("Profile "+ position);
        ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
        iv.setImageResource(R.drawable.icon);
        return v;
    }

Можно дополнительно оптимизировать метод getView(), применив шаблон держателя вида. Пожалуйста, обратитесь к презентации Романа Гая и Адама Пауэлла Мир ListView , поскольку он объясняет некоторые другие уловки, связанные с виджетами, которые расширяют класс AdapterView.

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