I have a car that loads data from a remote database. Each item in the list has two buttons and I need to make different volley requests for each button. I know how to make the onclick work in the complete item but not how to do it for a widget inside the item.
I hope you can help me, thanks in advance.
RecyclerViewAdapater:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
private static final String TAG = "RecyclerViewAdapter";
//vars
private List<Buttons> buttonsList;
private Context mContext;
public RecyclerViewAdapter(List<Buttons> buttonsList, Context mContext) {
this.buttonsList = buttonsList;
this.mContext = mContext;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_list_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
Log.d(TAG, "onBindViewHolder: called.");
Buttons buttons = buttonsList.get(position);
Glide.with(mContext)
.load(buttons.getButton_url())
.into(holder.image);
holder.name.setText(buttons.getButton_score());
holder.price.setText(buttons.getButton_price());
}
@Override
public int getItemCount() {
return buttonsList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
CircleImageView image;
TextView name, price;
Button buy_button, select_button;
public ViewHolder(View itemView) {
super(itemView);
image = (CircleImageView) itemView.findViewById(R.id.image_view);
name = (TextView) itemView.findViewById(R.id.name);
price = (TextView) itemView.findViewById(R.id.price);
buy_button = (Button) itemView.findViewById(R.id.buy_button_item);
select_button = (Button) itemView.findViewById(R.id.select_button_item);
}
}
}
MainActivity:
private void initRecyclerView(){
Log.d(TAG, "initRecyclerView: init recyclerview");
final LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerButtonsView);
recyclerView.setLayoutManager(layoutManager);
RecyclerViewAdapter adapter = new RecyclerViewAdapter(buttonsList, this);
recyclerView.setAdapter(adapter);
}