как открыть определенную / другую активность в представлении реселлера, чьи данные взяты из json, используя залп - PullRequest
0 голосов
/ 27 мая 2019

Я хочу открыть новое действие, которое отличается в каждом элементе повторного просмотра.

Я прочитал, и мне не нужен элемент изображения здесь: Как открыть другое действие на recyclerПросмотреть элемент onclick

Это мой адаптер

открытый класс B001Adapter расширяет RecyclerView.Adapter {

private Context context;
private LayoutInflater inflater;
List<B001Data> udata = Collections.emptyList();

public B001Adapter(Context context, List<B001Data> data) {
    this.context = context;
    inflater = LayoutInflater.from(context);
    this.udata = data;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.datab001, parent, false);
    MyHolder holder = new MyHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

    MyHolder myHolder = (MyHolder) holder;
    final B001Data current = udata.get(position);

    myHolder.device_name.setText(current.device_name);
    myHolder.mac_address.setText(current.mac_address);
    myHolder.status.setText("Status:" + String.valueOf(current.status));
}

@Override
public int getItemCount() {
    return udata.size();

}
class MyHolder extends RecyclerView.ViewHolder {

    TextView device_name, mac_address, status;

    public MyHolder(View itemView) {
        super(itemView);
        context = itemView.getContext();
        device_name = (TextView) itemView.findViewById(R.id.txt_device_name);
        mac_address = (TextView) itemView.findViewById(R.id.txt_mac_address);
        status = (TextView) itemView.findViewById(R.id.txt_status);
    }

    public void onClick(AdapterView<?> parent, View view, int position {

        final Intent intent;
        switch (getAdapterPosition()){
            case 0:
                intent =  new Intent(context, MainActivity.class);
                break;

            case 1:
                intent =  new Intent(context, B001FacilityM.class);
                break;

            case 2:
                intent =  new Intent(context, B001HRD.class);
                break;
            default:
                intent =  new Intent(context, B001home.class);
                break;
        }
        context.startActivity(intent);
    }
}

}

Я использую залп для отображения данных Jsonна утилитеНужен ваш совет.Спасибо

1 Ответ

0 голосов
/ 30 мая 2019

Сначала вы должны присвоить идентификатор файлу макета (R.layout.datab001), узнать идентификатор с помощью findViewsById в конструкторе MyHolder (), а затем установить для onClickListener макет, подобный myHolder.layout.setOnClickListener (....);в onBindViewHolder ().

или проверьте другой ответ RecyclerView onClick

...