0

how can i create a onitemclicklistener for my adapterviewflipper? this is my getView method in my adapter class for viewflipper:

@Override
    public View getView(int position, View view, ViewGroup viewGroup)
    {
        view = inflater.inflate(R.layout.activity_viewflipper_content, null, false);

        if (view == null)
        {
            view = inflater.inflate(R.layout.activity_viewflipper_content, null, false);
        }

        else
        {
            ImageView pic = view.findViewById(R.id.imgflip1xml);
            TextView title = view.findViewById(R.id.textflipxml);

            title.setText(postList.get(position).getTitle());

            RequestOptions glideOptions = new RequestOptions()
                    .centerCrop()
                    .placeholder(R.drawable.glideloading)
                    .error(R.drawable.gliderror);

            Glide.with(view.getContext())
                    .load(postList.get(position).getPic())
                    .apply(glideOptions)
                    .into(pic);

            notifyDataSetChanged();
        }

        return view;
    }

And this is my MainActivity:

    private AdapterViewFlipper adapterViewFlipper;
    adapterViewFlipper = findViewById(R.id.adapter_view_flipper_xml);
    adapterViewFlipper.setFlipInterval(2000);
    adapterViewFlipper.startFlipping();

    flipperAdapter = new FlipperAdapter(getApplicationContext());
    flipperAdapter.setTitle(flipperList);
    adapterViewFlipper.setAdapter(flipperAdapter);

I want to go another activity by clicking an item of viewflipper.

Farid
  • 158
  • 1
  • 2
  • 13

1 Answers1

0

You can use your own FlipperAdapter and pass OnClickListener in the constructor.

For example :

flipperAdapter = new FlipperAdapter(getApplicationContext(), new View.OnClickListener(){
        // HERE YOU ARE GOING TO EXECUTE WHAT YOU NEED
    });

Now in your custom FlipperAdapter constructor, fetch and store click listener at class level:

...

FlipperAdapter(Context context, OnClickListener listener){
   this.passedListenerFromMainActivity = listener
}

And on your custom FlipperAdapter side in getView():

    @Override
    public View getView(int position, View view, ViewGroup viewGroup)
    {
     ...
     view.setOnClickListener(passedListenerFromMainActivity)
     ...
    }

The main idea is to pass a class that will get your click event in your adapter and sent it back to your MainActivity. So we pass an OnClickListener that we defined in MainActivity to the constructor of your FlipperAdapter, then use this listener in your FlipperAdapter, events will be triggered in your MainActivity.

Corentin Houdayer
  • 988
  • 2
  • 8
  • 19