Я новичок, пишу первое приложение на Android на языке Java. (Android Studio 4.0)
Работаю с RecyclerView. Внутри адаптера в классе холдер добавил OnClickListener и описал onClick. Столкнулся с проблемой, что при нажатии на кнопку должны производиться действия, содержащиеся в onClick, но это происходит при нажатие на пространство между кнопками. Нажатие на кнопку игнорируется. Если нажать на пространство над второй кнопкой, то при запросе позиции возвращает единицу. Пробовал убирать пространство между кнопок, но и в этом случае нажатие на кнопку игнорирует. Я более, чем уверен, что допустил глупую ошибку.
Буду благодарен помощи с моим говнокодом.
ListAdapter.java
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ListViewHolder>{
ArrayList<Catalogue> catalogue;
public ListAdapter(ArrayList<Catalogue> catalogue){
this.catalogue = catalogue;
}
class ListViewHolder extends RecyclerView.ViewHolder{
Button button;
public ListViewHolder(@NonNull View itemView) {
super(itemView);
button = (Button) itemView.findViewById(R.id.button_of_list);
itemView.setOnClickListener(new View.OnClickListener() { // добавляю слушателя
@Override
public void onClick(View v) {
CreateNewListOfButton.CreateButton( "154/", "2/"); // действие
}
});
}
}
@NonNull
@Override
public ListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.button_list, parent, false);
return new ListViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ListViewHolder holder, int position) {
holder.button.setText(catalogue.get(position).getTextForButton());//Добавление текста в кнопку
}
@Override
public int getItemCount() {
return catalogue.size();
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</androidx.recyclerview.widget.RecyclerView>
</FrameLayout>
button_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_of_list"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#1f4b99"
android:textColor="#f1fcff"
android:focusable="false"
android:focusableInTouchMode="false"
></Button>
</LinearLayout>