【问题标题】:How to start new intent for different CardView items?如何为不同的 CardView 项目启动新意图?
【发布时间】:2023-04-03 03:56:01
【问题描述】:

我有一个RecyclerView Adapter

public class CardViewDataMainAdapter extends RecyclerView.Adapter<CardViewDataMainAdapter.ViewHolder> {
        public String[] mColorData;

        public CardViewDataMainAdapter(String[] colorData) {
            mColorData = colorData;
        }

        @Override
        public CardViewDataMainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_row, null);
            ViewHolder viewHolder = new ViewHolder(itemLayoutView);
            return viewHolder;
        }

        @Override
        public void onBindViewHolder(ViewHolder viewHolder, int position) {

            viewHolder.card_text.setText(mColorData[position].toString());

        }

        @Override
        public int getItemCount() {
            return mColorData.length;
        }

        public static class ViewHolder extends RecyclerView.ViewHolder {

            public TextView card_text;

            public ViewHolder(View itemLayoutView) {
                super(itemLayoutView);
                card_text = (TextView) itemLayoutView.findViewById(R.id.info_text);
            }

            @Override
            public void onClick(View v) {
            }
        }
    }

我有一个String Array,它定义了卡片的数据。 大约有 20 个卡片项目,我想开始新的intents,它使用if else 循环或switch case 循环为每个元素启动另一个RecyclerView 活动

我尝试搜索如何为RecyclerView 实现OnClickListener,但每个解决方案要么对所有卡片项目启动相同的意图,要么给出一些或其他错误

如果需要,我可以发布我的整个项目。

http://i.stack.imgur.com/POcqA.jpg

【问题讨论】:

  • 您要启动的 Intent。你想在里面放什么数据?我说你想传递绑定到视图的颜色数据是否正确?
  • @asadmshah 我想这是正确的。我有组成各种卡片的颜色数据字符串数组,对于每张卡片,我希望开始不同的意图。要我发一个截图供参考吗?
  • 我知道你想要一个不同的 Intent 但是你想要不同的 Intent 呢?它里面的附加功能还是您打算根据所选视图调用完全不同的活动?是的,屏幕截图可能会有所帮助。
  • 哦,对不起。我想开始一项全新的活动。我想在未来对新的卡片组进行扩展视图,但我想现在就学习。附言我正在制作一个材料设计颜色样本的静态应用程序。
  • 我知道。我要问的是,您是否计划根据单击的视图启动类似 Activity1、Activity2、Activity3 的内容,或者您​​是否要启动新的 ActivityWhatever 但只需更改其中的 Intent Extras 数据?

标签: android android-adapter android-recyclerview android-cardview


【解决方案1】:

好问题。关注thisthis

基本上,您可以在 onCreateViewHolder() 中添加点击侦听器,并让您的适配器 implemt OnClickListener,这样您就有一个 onClick(),您可以在其中根据位置进行开关或 if()。

【讨论】:

  • 是的,我以前见过这个,但由于我还在学习,我觉得它很混乱。 single onClick() in which you can have a switch or if() 你能解释更多或举个例子吗?
  • 我自己想通了。谢谢!
猜你喜欢
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2018-09-28
相关资源
最近更新 更多