如何使用齐射在数据来自json的recyclerview中打开特定/不同的活动

时间:2019-05-27 14:02:01

标签: json android-recyclerview android-volley onclicklistener

我想打开每个recyclerview项目中不同的新活动。

我已阅读,这里不需要图片:How to open a different activity on recyclerView item 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);
    }
}

}

我使用齐射来获取显示在recyclerView上的Json数据。寻找您的建议。谢谢

1 个答案:

答案 0 :(得分:0)

首先,您应该将ID分配给布局文件(R.layout.datab001),  在MyHolder()构造函数中使用findViewsById找出ID 然后将onClickListener设置为myHolder.layout.setOnClickListener(....) 在onBindViewHolder()中。

或检查其他答案 RecyclerView onClick