2015-12-11 42 views
0

我有一個CardView列表,其中包含使用RecyclerViewAdapter製作的大約20張卡片。從另一個類別獲取RecyclerView的物品位置

單擊卡片項目後,我希望它啓動一個新的intent包含另一個CardView列表。我可以做到這一點,但我也希望它根據點擊卡位置設置卡片顏色。

例如 - 如果卡項目Red被點擊,就應該開始新的意圖類和設卡的顏色的Red(我可以將其定義)色調。 與其他色卡項目類似。

這可能嗎?

+0

你想改變顏色Cardview在新活動或原始活動中的位置? –

+0

@NikoYuwono新活動 –

回答

0

您可以簡單地從Adapter獲取CardView的位置。

This會幫助你。

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)); 

好運。

+0

我可以在這裏以任何方式使用String數組嗎? –

+0

是的,如果你傳遞你的字符串數組,你可以在你的新活動中獲得並使用它。但是如果你傳遞字符串數組,我認爲你需要傳遞一個位置給你的新活動。 – savepopulation

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 ...變化的方法的位置

+0

'「CardPosition」''「CardColor」'這些只是其他類的引用名稱? –

+0

沒有它的putextra參數的名字...你可以在這些名字的其他活動上得到這個參數...比如getArguments()。getExtra(「CardPosition」); –

相關問題