На самом деле я пытаюсь создать ресторан, который позволит принимать заказы.
Но на самом деле у меня возникают некоторые проблемы при добавлении варианта в мою еду. Я объясню лучше, у меня есть recyclerView «ЕДА», из которого я добавляю предметы в другой recycler.
Также в моем приложении я могу добавить к ПРОДОВОЛЬСТВУ, добавленному в НОУТБУК, несколько вариантов, другими словами, я добавил ПИЦЦУ в свой НОУТБУК, а с помощью вариантов я могу добавить дочернего элемента в ПИЦЦУ, называемую «БОЛЬШОЙ» или «С» ПЕПЕРОНИ "или оба.
для добавления ребенка я делаю следующее в моем адаптере
public class AdapterPTERM extends RecyclerView.Adapter<AdapterPTERM.ExampleViewHolder> {
private List<ItemPTERM> mExampleList;
private final LayoutInflater mInflater;
private OnItemClickListener mListener;
public interface OnItemClickListener{
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener){
mListener = listener;
}
@NonNull
@Override
public ExampleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_pterm,parent,false);
return new ExampleViewHolder(v,mListener);
}
AdapterPTERM(Context context, List<ItemPTERM> exampleList){
mExampleList = exampleList;
mInflater = LayoutInflater.from(context);
}
@Override
public void onBindViewHolder(@NonNull final ExampleViewHolder holder, final int position) {
final ItemPTERM item = mExampleList.get(position);
holder.desc.setText(item.getBtnName());
holder.qta.setText(String.valueOf(item.getQuant()));
holder.variantsContainer.removeAllViews();
// ADDING CHILD HERE
final List<Variant> variants = item.getVariants();
if (variants != null && variants.size() > 0){
for(Variant v : variants){
View vView = mInflater.inflate(R.layout.variant_layout,holder.variantsContainer,false);
TextView nameTV = vView.findViewById(R.id.variant_name);
nameTV.setText(v.getName());
vView.setTag(position);
vView.setOnClickListener(varientClickListener);
holder.variantsContainer.addView(vView);
}
}
// NOT IMPORTANT (CHANGING FIELDS COLOR
if(position % 2 == 0 ){
holder.itemView.setBackgroundColor(Color.parseColor("#C0C0C0"));
}else if(position % 2 == 1){
holder.itemView.setBackgroundColor(Color.parseColor("#D3D3D3"));
}
}
@Override
public int getItemCount() {
return mExampleList.size();
}
public class ExampleViewHolder extends RecyclerView.ViewHolder {
public TextView desc;
public TextView qta;
private LinearLayout variantsContainer;
ExampleViewHolder(View itemView, final OnItemClickListener listener) {
super(itemView);
desc = itemView.findViewById(R.id.Desc);
qta = itemView.findViewById(R.id.Qta);
variantsContainer = itemView.findViewById(R.id.ll_child_items);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null){
int position = getAdapterPosition();
if(position != RecyclerView.NO_POSITION){
listener.onItemClick(position);
}
}
}
});
}
}
private View.OnClickListener varientClickListener=new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("VIEW:", "CLICKED");
}
};
public void removeItem(int position) {
mExampleList.remove(position);
notifyItemRemoved(position);
}
}
Теперь я мог бы щелкнуть по каждому добавленному дочернему элементу или даже добавить один метод onSwipe, потому что я мог бы удалять определенные варианты из пищи.
Вот скриншот того, как выглядит мой recyclerView с recyclerView и дочерним элементом.
Теперь, как я могу использовать onClick в своей деятельности?