OnItemClickListener Not Triggered on Android GridView

后端 未结 6 1903
情歌与酒
情歌与酒 2020-12-03 00:50

I have a Gridview filled by an Adapter which returns LinearLayouts each contains an ImageButton and TextView.

In the adapter I am binding an onClick and onLongClick

6条回答
  •  醉梦人生
    2020-12-03 01:37

    Hey guyz finally got a solution...

    what we were doing is directly accessing the Layout inside the GridView, so the onItemClickListener finds it confusing to access the item.

    So the solution is to apply the onClickListener inside the Adapter (i.e. normally ArrayAdapter)

    so what i m trying to say is:

    public View getView(int position, View convertView, ViewGroup parent) {
    
                //Here row is a view and we can set OnClickListener on this
        final View row;
        ViewHolder holder = null;
    
        if (convertView == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            //Here we inflate the layout to view (linear in my case)
            row = inflater.inflate(layoutResourceId, parent, false);
            holder = new ViewHolder();
            holder.imageTitle = (TextView) row.findViewById(R.id.text);
            holder.image = (ImageView) row.findViewById(R.id.image);
            row.setTag(holder);
        } else {
            row = convertView;
            holder = (ViewHolder) row.getTag();
        }
    
        ImageItem item = data.get(position);
        holder.imageTitle.setText(item.getTitle());
        holder.image.setImageBitmap(item.getImage());
    
        //Now get the id or whatever needed
        row.setId(position);
        // Now set the onClickListener
        row.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(context, "Clicked" + row.getId() + "!!",
                        Toast.LENGTH_SHORT).show();
            }
        });
        return row;
    }
    

提交回复
热议问题