Я делаю проект Android Studio, для этого я сделал RecyclerView для списка покупок, и все было в порядке, но теперь мне нужно, чтобы, когда клиент нажимает на категорию, запускалась личная активность для этой опции.Проблема в том, что когда я связал настроенное действие для «Bebidas», были задействованы все кнопки.Как я могу сделать так, чтобы только категория «Bebidas» могла читать эту деятельность?Я надеюсь, что кто-то может помочь мне.Благодарю.
Вот MainActivity:
public class CategoriasActivity extends AppCompatActivity {
ArrayList<Categorias> listaCategorias;
RecyclerView recyclerCategorias;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_categorias);
listaCategorias=new ArrayList<>();
recyclerCategorias =(RecyclerView) findViewById(R.id.recyclerid);
//recycler.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
recyclerCategorias.setLayoutManager(new GridLayoutManager(this,2));
llenarCategorias();
AdaptadorCategorias adapter=new AdaptadorCategorias(listaCategorias);
adapter.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Toast.makeText(getApplicationContext(), "Selección: "+listaCategorias.get(recyclerCategorias.getChildAdapterPosition(view)).getNombre(), Toast.LENGTH_SHORT).show();
}
});
recyclerCategorias.setAdapter(adapter);
}
private void llenarCategorias(){
listaCategorias.add(new Categorias("Congelados",R.drawable.congelados));
listaCategorias.add(new Categorias("Bebidas", R.drawable.bebida));
listaCategorias.add(new Categorias("Panadería", R.drawable.panaderia));
listaCategorias.add(new Categorias("Pastelería", R.drawable.pasteleria));
}
public void onclick(View view) {
Intent intent=new Intent(getApplicationContext(), BebidasActivity.class);
startActivity(intent);
}
}
Вот класс:
public class Categorias {
private String nombre;
//private String info;
private int foto;
public Categorias(String nombre, int foto){ //String info
this.nombre = nombre;
//this.info = info;
this.foto = foto;
}
public Categorias(){
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
/*public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}*/
public int getFoto() {
return foto;
}
public void setFoto(int foto) {
this.foto = foto;
}
}
ВотАдаптер:
public class AdaptadorCategorias
extends RecyclerView.Adapter<AdaptadorCategorias.ViewHolderCategorias>implements View.OnClickListener {
ArrayList<Categorias> listaCategorias;
private View.OnClickListener listener;
public AdaptadorCategorias(ArrayList<Categorias> listaCategorias) {
this.listaCategorias = listaCategorias;
}
@Override
public ViewHolderCategorias onCreateViewHolder(ViewGroup parent, int viewType) {
View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.categorias_list, null, false);
view.setOnClickListener(this);
return new ViewHolderCategorias(view);
}
@Override
public void onBindViewHolder(ViewHolderCategorias holder, int position) {
//Asignamos los valores correspondientes a cada TextView
holder.nombre.setText(listaCategorias.get(position).getNombre());
//holder.info.setText(listaCategorias.get(position).getInfo());
holder.idImagen.setImageResource(listaCategorias.get(position).getFoto());
//Asignar eventos a los botones
}
@Override
public int getItemCount() {
return listaCategorias.size();
}
public void setOnClickListener(View.OnClickListener listener){
this.listener=listener;
}
@Override
public void onClick(View view) {
if (listener!=null){
listener.onClick(view);
}
}
public class ViewHolderCategorias extends RecyclerView.ViewHolder {
TextView nombre; //, info;
ImageButton idImagen;
public ViewHolderCategorias(View itemView) {
super(itemView);
nombre=(TextView) itemView.findViewById(R.id.idNombre);
//info=(TextView) itemView.findViewById(R.id.idInfo);
idImagen=(ImageButton) itemView.findViewById(R.id.idImagen);
}
}
}
Вот XML-код RecyclerView:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageButton
android:id="@+id/idImagen"
android:layout_width="112dp"
android:layout_height="111dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@android:color/transparent"
android:src="@drawable/bebida"
android:onClick="onclick"/>
<TextView
android:id="@+id/idNombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Bebidas"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginBottom="10dp"/>
Вот файл activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageButton
android:id="@+id/idImagen"
android:layout_width="112dp"
android:layout_height="111dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@android:color/transparent"
android:src="@drawable/bebida"
android:onClick="onclick"/>
<TextView
android:id="@+id/idNombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Bebidas"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginBottom="10dp"/>