Android 从另一个类获取RecyclerView的项目位置

Android 从另一个类获取RecyclerView的项目位置,android,android-recyclerview,android-cardview,Android,Android Recyclerview,Android Cardview,我有一个cardwiew列表,其中包含大约20张使用RecyclerView和适配器制作的卡 单击卡片项目后,我希望它启动一个新的intent,其中包含另一个cardwiew列表。我可以这样做,但我也希望它设置卡的颜色取决于卡的位置点击 比如说- 如果单击了卡片项“红色”,它应该启动新的意向类,并将卡片颜色设置为“红色”(我可以定义它)。 与其他色卡项目类似 这可能吗?您只需从适配器获取卡视图的位置即可 将对您有所帮助。首先将您的颜色作为字符串传递给您的新活动包: Intent mIntent

我有一个
cardwiew
列表,其中包含大约20张使用
RecyclerView
适配器制作的卡

单击卡片项目后,我希望它启动一个新的
intent
,其中包含另一个
cardwiew
列表。我可以这样做,但我也希望它设置卡的颜色取决于卡的位置点击

比如说- 如果单击了卡片项“红色”
,它应该启动新的意向类,并将卡片颜色设置为“红色”(我可以定义它)。 与其他色卡项目类似


这可能吗?

您只需从
适配器
获取
卡视图
的位置即可


将对您有所帮助。

首先将您的颜色作为字符串传递给您的新活动包:

Intent mIntent = new Intent(mContext, YourNewActivity.class);
mIntent.putExtra("color", yourColorString);
startActivity(mIntent)
在您的新活动中,从包中获取颜色

String color = "#000";
Bundle bundle = getIntent().getExtras();
if(bundle != null){
    color = bundle.getString(color,"#000");
}
在适配器构造函数中将颜色传递给适配器,并在适配器中找到卡视图并设置背景色,如下所示:

cardView.setBackgroundColor(Color.parseColor(color));

祝你好运。

这样做……在适配器内部

@Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
       //..... your rest code

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context,SecondActivity.class);
                intent.putExtra("CardPosition",position); //for positiion
                intent.putExtra("CardColor",
                    list.get(position).getColor()); //for value
                context.startActivity(intent);
            }
        });
    }

在第二个活动中,您可以获得cardview的位置…根据您的要求更改方法

您想在新活动中更改cardview的颜色还是原始活动?@NikoYuwono新活动
“CardPosition”
“CardColor”这些只是其他类的引用名称吗?没有putextra参数的名称…您可以在其他活动中使用这些名称获取此参数…如getArguments().getExtra(“CardPosition”);我可以在这里使用字符串数组吗?是的,如果您将字符串数组以捆绑方式传递,您可以在新活动中获得并使用它。但如果你传递字符串数组,我想你也需要传递一个位置给你的新活动。