0

如何为我的adapterviewflipper 创建一个onitemclicklistener?这是我的 viewflipper 适配器类中的 getView 方法:

@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;
    }

这是我的 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);

我想通过单击 viewflipper 的项目来进行另一项活动。

4

1 回答 1

0

您可以使用自己的 FlipperAdapter 并在构造函数中传递 OnClickListener。

例如 :

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

现在在您的自定义 FlipperAdapter 构造函数中,在类级别获取并存储点击侦听器:

...

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

在 getView() 的自定义 FlipperAdapter 端:

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

主要思想是传递一个类,该类将在您的适配器中获取您的点击事件并将其发送回您的 MainActivity。因此,我们将 MainActivity 中定义的 OnClickListener 传递给 FlipperAdapter 的构造函数,然后在 FlipperAdapter 中使用此侦听器,事件将在您的 MainActivity 中触发。

于 2019-07-31T13:19:31.450 回答