Разные виды деятельности - один и тот же список - PullRequest
0 голосов
/ 15 июня 2019

У меня есть список значений массива.В Recyclerview этот список открывает одинаковую активность для всех предметов.Я хочу в другой позиции (несколько позиций) открыть другую деятельность.Есть идеи?В моем коде: => DetaliiActivity.я хочу, например, пункт "Бла", чтобы открыть другую деятельность

public class DomeniiAdapter extends 
RecyclerView.Adapter<DomeniiAdapter.MyViewHolder> {

private Context context;
private List<Domenii> listaDomenii;

public DomeniiAdapter(Context context, List<Domenii> listaDomenii) {
    this.listaDomenii = listaDomenii;
    this.context = context;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_domenii, parent, false);

    return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    final Domenii domeniu = listaDomenii.get(position);
    holder.nume.setText(domeniu.getNume());
    holder.imagine.setImageResource(domeniu.getImagine());

    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, DetaliiActivity.class);
            intent.putExtra("cheie", domeniu);

            context.startActivity(intent);

        }
    });
}

public class MyViewHolder extends RecyclerView.ViewHolder {
    public TextView nume;
    public ImageView imagine;

    public MyViewHolder(View view) {
        super(view);
        nume = view.findViewById(R.id.domeniiNume);
        imagine = view.findViewById(R.id.domeniiImage);
    }
}

@Override
public int getItemCount() {
    if (listaDomenii != null) {
        return listaDomenii.size();
    } else {
        return 0;
        }
    }
}

public class Domenii implements Serializable {

private String nume;
private int imagine;
private List<Detalii> details;

public Domenii(String nume, int imagine) {
    this.nume = nume;
    this.imagine = imagine;
}

public String getNume() {
    return nume;
}

public void setNume(String nume) {
    this.nume = nume;
}

public int getImagine() {
    return imagine;
}

public void setImagine(int imagine) {
    this.imagine = imagine;
}

public List<Detalii> getDetails() {
    return details;
}

public void setDetails(List<Detalii> details) {
    this.details = details;
    }
}


<!--DOMENII-->

<string-array name="nume_domenii">
    <item>Filme</item>
    <item>Turism</item>
    <item>Transport</item>
    <item>Cumparaturi</item>
    <item>Jocuri</item>
    <item>Blaa</item>
    <item>Cucu</item>

1 Ответ

0 голосов
/ 15 июня 2019

вы можете сделать это так: внутри щелкающего слушателя выполните это условие

holder.itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (domeniu.getNume().equals("Blaa")){
           // open the activity you want here
           Intent intent = new Intent(context, YourDifActivity.class);
           intent.putExtra("cheie", domeniu);

           context.startActivity(intent);
        } else {
           Intent intent = new Intent(context, DetaliiActivity.class);
           intent.putExtra("cheie", domeniu);

           context.startActivity(intent);
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...