Не входит в onClick () или onLongPress () GridView android

#android #gridview #onclicklistener

#Android #просмотр сетки #onclicklistener

Вопрос:

  • У меня есть GridView.
  • Я устанавливаю на него адаптер.
  • Добавление setOnClickListener() и setOnLongClickListener().

Проблема :

  • Иногда он входит в setOnLongClickListener ()
  • Иногда в setOnClickListener () и
  • Иногда в none.

открытый класс ABCAdapter расширяет BaseAdapter {

 ...

@Override
public View getView(int position, View convertView, ViewGroup arg2) {
ViewHolder holder = null;
    final Answer option = mOptionsList.get(position);
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = mInflater.inflate(mLayoutId, null);
        holder.data = (TextView) convertView.findViewById(R.id.data);
        holder.row = (LinearLayout) convertView
                .findViewById(R.id.row);
        convertView.setTag(holder);
    } else {
        holder = (OptionViewHolder) convertView.getTag();
    }
    holder.data.setText("Data");
    holder.row.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(final View selectionView) {
        ...
        }
    });
    holder.row.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
        public boolean onLongClick(View view) {
        ...
        return false;
        }
    });
}
 

}

Комментарии:

1. разместите свой код здесь… что вы сделали?

2. @NehaC Вы получите ответ, как только опубликуете здесь свой код.

Ответ №1:

попробуйте gridView.setOnItemClickListener(new OnItemClickListener()

из вашей активности, имеющей GridView

Ответ №2:

return true как из метода onClick (), так и из метода onLongClick ()

 @Override
        public boolean onLongClick(View view) {
        ...
        return true;
        }

@Override
        public void onClick(final View selectionView) {
        ...
return true;
        }
 

Альтернативное решение
Используйте следующие прослушиватели в вашем gridview

 mGridView.setOnItemClickListener(this);
mGridView.setOnItemLongClickListener(this);