public class ModelClass {
private int imageResourse1;
private int imageResourse2;
private int getImageResourse3;
private String title;
public ModelClass(int imageResourse1, int imageResourse2, int getImageResourse3, String title) {
this.imageResourse1 = imageResourse1;
this.imageResourse2 = imageResourse2;
this.getImageResourse3 = getImageResourse3;
this.title = title;
}
public int getImageResourse1() {
return imageResourse1;
}
public int getImageResourse2() {
return imageResourse2;
}
public int getGetImageResourse3() {
return getImageResourse3;
}
public String getTitle() {
return title;
}
}
public class Adapter_class extends RecyclerView.Adapter<Adapter_class.ViewHolder> {
private List<ModelClass> modelClassList;
public Adapter_class(List<ModelClass> modelClassList) {
this.modelClassList = modelClassList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_layout,viewGroup,false);return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
int resourse1 = modelClassList.get(i).getImageResourse1();
int resourse2=modelClassList.get(i).getImageResourse2();
int resourse3=modelClassList.get(i).getGetImageResourse3();
String title=modelClassList.get(i).getTitle();
viewHolder.setData(resourse1,resourse2,resourse3,title);
}
@Override
public int getItemCount() {
return modelClassList.size() ;
}
class ViewHolder extends RecyclerView.ViewHolder
{
private Button button1;
private Button button2;
private Button button3;
private TextView title;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title =itemView.findViewById(R.id.textView);
button1=itemView.findViewById(R.id.button4);
button2=itemView.findViewById(R.id.button7);
button3 =itemView.findViewById(R.id.button8);
}
private void setData( int resourse1,int resourse2,int resourse3, String titleText ){
button1.setBackgroundResource(resourse1);
button2.setBackgroundResource(resourse2);
button3.setBackgroundResource(resourse3);
title.setText(titleText);
}
}
}
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager=new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
List<ModelClass>modelClassList=new ArrayList<>();
modelClassList.add(new ModelClass(R.drawable.ic_launcher_background, R.drawable.ic_launcher_background,R.drawable.ic_launcher_background,"hello this is user 1" ));//картинка кнопки 1 к,картинка кнопки 2 ,картинка кнопки 3 ,текст.
modelClassList.add(new ModelClass(R.drawable.ic_launcher_background, R.drawable.ic_launcher_background,R.drawable.ic_launcher_background,"hello this is user 2" ));
modelClassList.add(new ModelClass(R.drawable.ic_launcher_background,0,0,"hello this is user 3" ));
Adapter_class adapter =new Adapter_class(modelClassList);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
Здравствуйте подскажите можно ли сделать так чтобы в Recyclerview можно было для каждой кнопки назначить разное onClick(); и разные действия соответственно
В простом варианте вы можете реализовать OnClick во ViewHolder:
public ViewHolder(@NonNull View itemView) {
super(itemView);
title =itemView.findViewById(R.id.textView);
button1=itemView.findViewById(R.id.button4);
button2=itemView.findViewById(R.id.button7);
button3 =itemView.findViewById(R.id.button8);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId) {
case R.id.button4:
// Действие при нажатии на кнопку
break;
case R.id.button7:
// Действие при нажатии на кнопку
break;
case R.id.button8:
// Действие при нажатии на кнопку
break;
}
}
};
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задание такое, есть 2 уравнения с двумя переменными, нужно понять возможно единственное решение, нет решений или бесконечное множество решений
У меня есть bottom-sheet, в нем есть кнопкаКогда я нажимаю на эту кнопку у меня появляется диалог, в этом диалоге есть кнопка, когда я нажимаю уже...
Всем привет,такой вопрос,в базу пишу время таким образом