Определение onlick для просмотра списка: Onclick на уровне listView против Onclick внутри адаптера пользовательского представления - PullRequest
0 голосов
/ 21 января 2019

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

Увеличит ли потребление памяти определение обработчика кликов на уровне пользовательского адаптера? Ниже приведен пример псевдокода.

// Определение обработчика кликов на уровне списка

layoutNotificationViewHolder.mNotificationListLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            final SampleItem selectedItem = itemList.get(position);
            Intent itemInfoIntent = new Intent(context, itemMoreInfoActivity.class);
            itemInfoIntent.putExtra("selected_item", selectedItem);
            context.startActivity(itemInfoIntent);
        }
    });

// Определение обработчика щелчка внутри адаптера.

public View getView(final int position, View convertView, ViewGroup parent) {

 final SampleItem selectedItem = itemList.get(position);
 convertView.mCameraIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent itemInfoIntent = new Intent(context, itemMoreInfoActivity.class);
                itemInfoIntent.putExtra("selected_item", selectedItem);
                context.startActivity(itemInfoIntent);
            }
        });

}

1 Ответ

0 голосов
/ 22 января 2019

Во-первых, представление списка не рекомендуется, вместо этого используйте RecyclerView. На ваш вопрос, если обработчик щелчков является адаптером (ex 1), поэтому новые объекты не будут созданы, что хорошо для памяти, и если вы установите его как в ex2 - новый объект будет создаваться каждый раз, когда функция getView будет Называться который менее хорош. Но в целом это не так дорого, поэтому оба примера хороши.

...