2015-12-11 4 views
0

У меня есть список CardView, содержащий около 20 карт, сделанных с использованием RecyclerView и Adapter.Получить позицию позиции RecyclerView из другого класса

После щелчка на карточке, я хочу, чтобы он запустил новый intent, содержащий еще один список CardView. Я могу это сделать, но я также хочу, чтобы он установил цвета карты в зависимости от выбранной позиции карты.

Например - Если деталь Red карты щелкнул, он должен начать новый пристальный класс и набор цветов карты в оттенках Red (я могу определить его). И аналогично с другими элементами карты.

Возможно ли это?

+0

Вы хотите изменить цвет карты в новой активности или оригинальной? –

+0

@NikoYuwono Новая активность –

ответ

0

Вы можете просто получить позицию CardView от Adapter.

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

Могу ли я каким-либо образом использовать массив строк? –

+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»); –

Смежные вопросы