如何从RecyclerView中的选定项目开始一个带有背景的新活动

时间:2016-09-19 06:36:17

标签: android android-activity android-recyclerview

我正在尝试根据用户选择Recyclerview中的项目来启动新活动。用户可以点击选择,我想获得所选项目的背景并将其设置为活动。 到目前为止我已经尝试了

  1. 意图
  2. setContentView(View)以及setContentView(Resource)
  3. 查看切换台。
  4. 这些都不适合我。如果他们改变主意,我还想让用户点击按钮并返回选择列表。这样做的最佳方式是什么?

    编辑:背景是可绘制的而不是颜色。意图显然不是一个选择,因为我无法通过drawable。

    UPDATE:我在主类中设置了一个公共Drawable对象,并通过调用view.Background();为其指定了所选项目的背景图像。 然后我检索该值并分配给我的下一个活动的主要布局,但它仍然无法正常工作。

    LinearLayout lt = (LinearLayout) findViewById(R.id.firstLayout);
    lt.setBackground(MainClass.backgroundDrawable);
    

    此部分不适用于我的新活动。我看到值是正确的,但同样的Drawable没有分配给活动。

2 个答案:

答案 0 :(得分:1)

您可以在Drawable或以XML标记每个getTag(),然后使用getResources().getIdentifier(tag name, "drawable", .getPackageName())方法检索它。使用extra获取drawable的资源ID。

现在将其作为intent

中的intent.putExtra("tag name",resource id); 传递给我
drawable

使用

检索getResources().getDrawable(intent.getIntExtra("tag name", -1));
img.png

修改

我真的不明白你想要完成什么,但假设你有一个名为LinearLayout lt = (LinearLayout) findViewById(R.id.firstLayout); lt.setBackground(R.drawable.img); lt.setOnClickListener(new View.OnClickListener() { @Override public void onClick() { Intent intent = new Intent(getApplicationContext(), NextActivity.class); intent.putExtra("bg", "img"); startActivity(intent); } } 的图像要设置为背景,你可以这样做:

bg

在你的NextActivity中,你可以提取switch额外内容并写一个appearance.SetVisibleSignature来检查哪个drawable作为背景,假设你使用多个图像作为背景。

答案 1 :(得分:0)

我在做了一些研究并按如下方式调整了我的代码后解决了它。我在主要活动中宣布了一个公共Drawable。我在

中跟踪了每张卡片视图的位置
  

OnBindViewHolder(MyViewHolder vh,int position)

使用

if(position == 0){
holder.view.setBackgroundResource(R.drawable.image1);
} 

然后我在MyViewHolder构造函数中的视图上注册onClickListener,我在其中将视图的背景分配给我的全局Drawable

gloabalDrawable = clickedView.getBackground();

我只需启动新活动并检索全局Drawable的值,并将其分配给新活动中的布局。