我有一個CardView
列表,其中包含使用RecyclerView
和Adapter
製作的大約20張卡片。從另一個類別獲取RecyclerView的物品位置
單擊卡片項目後,我希望它啓動一個新的intent
包含另一個CardView
列表。我可以做到這一點,但我也希望它根據點擊卡位置設置卡片顏色。
例如 - 如果卡項目Red
被點擊,就應該開始新的意圖類和設卡的顏色的Red
(我可以將其定義)色調。 與其他色卡項目類似。
這可能嗎?
我有一個CardView
列表,其中包含使用RecyclerView
和Adapter
製作的大約20張卡片。從另一個類別獲取RecyclerView的物品位置
單擊卡片項目後,我希望它啓動一個新的intent
包含另一個CardView
列表。我可以做到這一點,但我也希望它根據點擊卡位置設置卡片顏色。
例如 - 如果卡項目Red
被點擊,就應該開始新的意圖類和設卡的顏色的Red
(我可以將其定義)色調。 與其他色卡項目類似。
這可能嗎?
您可以簡單地從Adapter
獲取CardView
的位置。
This會幫助你。
第一遍你的顏色作爲一個字符串到新的活動與包:
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));
好運。
我可以在這裏以任何方式使用String數組嗎? –
是的,如果你傳遞你的字符串數組,你可以在你的新活動中獲得並使用它。但是如果你傳遞字符串數組,我認爲你需要傳遞一個位置給你的新活動。 – savepopulation
做這樣...您的適配器
@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 ...變化的方法的位置
'「CardPosition」''「CardColor」'這些只是其他類的引用名稱? –
沒有它的putextra參數的名字...你可以在這些名字的其他活動上得到這個參數...比如getArguments()。getExtra(「CardPosition」); –
你想改變顏色Cardview在新活動或原始活動中的位置? –
@NikoYuwono新活動 –