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

时间:2015-12-11 06:29:53

标签: android android-recyclerview android-cardview

我有一个CardView列表,其中包含使用RecyclerViewAdapter制作的大约20张卡片。

点击卡片项后,我希望它开始一个包含另一个intent列表的新CardView。我可以这样做,但我也希望它根据点击的卡片位置设置卡片颜色。

例如 - 如果单击卡片项Red,它应该启动新的意图类并将卡片颜色设置为Red的阴影(我可以定义它)。 与其他色卡项目类似。

这可能吗?

3 个答案:

答案 0 :(得分:0)

您只需从CardView获取Adapter的位置。

This会帮助你。

答案 1 :(得分:0)

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

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));
祝你好运。

答案 2 :(得分:0)

以这种方式做到......在你的适配器里面

@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的位置...更改方法