в Recyclerview событие onClick

148
02 декабря 2019, 16:10
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(); и разные действия соответственно

Answer 1

В простом варианте вы можете реализовать 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;
    }
}
};
READ ALSO
android studio создаёт поломанный проект

android studio создаёт поломанный проект

Создаю проект и выскакивает такая ошибка:

208
Как понять что система из двух уравнений и двух переменными имеет бесконечное количество решений?

Как понять что система из двух уравнений и двух переменными имеет бесконечное количество решений?

Задание такое, есть 2 уравнения с двумя переменными, нужно понять возможно единственное решение, нет решений или бесконечное множество решений

136
Как закрыть нынешний фрагмент и перейти на другой фрагмент?

Как закрыть нынешний фрагмент и перейти на другой фрагмент?

У меня есть bottom-sheet, в нем есть кнопкаКогда я нажимаю на эту кнопку у меня появляется диалог, в этом диалоге есть кнопка, когда я нажимаю уже...

145
Сортировка timestamp в FirebaseDatabase reference

Сортировка timestamp в FirebaseDatabase reference

Всем привет,такой вопрос,в базу пишу время таким образом

184