Search code examples
androidgridviewarraylistandroid-arrayadapter

How to retrieve grid item data from arrayList in android


I am fetching data from json and saving into arrayList of custom class type. Here it is,

class ShowInfo{
    public String title;
    public String image;
    public String id;
}
ArrayList<ShowInfo> imgs = new ArrayList<ShowInfo>();

My gridView adapter class is -

class CustomAdapter extends ArrayAdapter<ShowInfo> {

    CustomAdapter() {
        super(getActivity(), android.R.layout.simple_list_item_1, imgs);
    }

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

        ViewHolder holder;
        if(convertView == null){
            LayoutInflater inflater = getActivity().getLayoutInflater();
            convertView = inflater.inflate(R.layout.single_image, null);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        }
        else{
            holder = (ViewHolder)convertView.getTag();
        }
        holder.populateFrom(imgs.get(position));


        return convertView;
    }
}
class ViewHolder{
    // public TextView payment = null;
    public ImageView image = null;

    ViewHolder(View view){
        image = new RoundedImageView(getActivity().getApplicationContext());
        LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(width / rowLimit, width / rowLimit);
        params2.setMargins(5, 0, 5, 0);

        //content.setLayoutParams(params);

    }

    void populateFrom(GalleryInfo info){

        // image.setImageBitmap(info.logo);
        Picasso.with(getActivity())
                .load(info.image)
                .placeholder(R.drawable.dittyicon)
                .resize(200, 200)
                .into(image);
    }
}

When click on any item of gridview I want to get title and id of corresponding grid image. I could I get that? I am stuck here, any help will be appreciated.


Solution

  • By using OnItemClickListener you can do it as follows

    yourGridView.setOnItemClickListener(new OnItemClickListener() {
    
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                ShowInfo info=imgs.get(position);
                //By using info you can get title and id
            }
        });
    

    Hope this will helps you.