Почему горизонтальные элементы в RecycleView не работают на клике? - PullRequest
0 голосов
/ 31 мая 2018

[Код ниже] Элемент в RecycleView не щелкает [он должен открыть DetailActivity], я пытаюсь найти ошибку, но не понимаю, где

Что я пытаюсь:

  • Изменить размер элементов
  • Изменить RecycleView на VERTICAL
  • Записать Log.v

У меня естьтот же RecycleViewAdapter, но он вертикальный и работает хорошо.Мой весь проект: https://github.com/sanke46/E-Commerce

RecycleViewAdapter:

public class SalesRecyclerViewAdapter extends RecyclerView.Adapter<SalesRecyclerViewAdapter.ViewHolder> {

BasketActivity basketActivity = new BasketActivity();
private List<Item> itemList = basketActivity.getBasketItem();
private ArrayList arr;
private Context mContext;

public SalesRecyclerViewAdapter(Context context, ArrayList<Item> data) {
    this.arr = data;
    mContext = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_sale, parent, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    final Item item = (Item) arr.get(position);

    Picasso.with(mContext).load(item.getImageUrl()).into(holder.imageView);
    holder.price.setText(item.getPrice() + " $");
    holder.price.setPaintFlags(holder.price.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG);
    holder.fixPrice.setText(item.getDiscontPrice() + " $");
    holder.name.setText(item.getName());
    holder.comment.setText(item.getComment());
    holder.gramm.setText(item.converGramms(String.valueOf(item.getGramms())));
    holder.kal.setText(item.getKalories() + " kal");
    holder.addToCart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            itemList.add((Item) arr.get(position));
            basketActivity.setBasketItem(itemList);
        }
    });
    holder.linerSaleClick.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(mContext, DetailActivity.class);
            intent.putExtra("item", item);
            mContext.startActivity(intent);
            Log.v("SALES", "SALES");
        }
    });
}

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

class ViewHolder extends RecyclerView.ViewHolder {
    private RelativeLayout linerSaleClick;
    private ImageView imageView;
    private TextView price;
    private TextView fixPrice;
    private TextView name;
    private TextView comment;
    private TextView gramm;
    private TextView kal;
    private Button addToCart;

    public ViewHolder(View itemView) {
        super(itemView);
        linerSaleClick = itemView.findViewById(R.id.linerSaleClick);
        imageView = itemView.findViewById(R.id.imageSale);
        price = itemView.findViewById(R.id.price);
        kal = itemView.findViewById(R.id.kal);
        gramm = itemView.findViewById(R.id.gramm);
        name = itemView.findViewById(R.id.name);
        comment = itemView.findViewById(R.id.comments);
        fixPrice = itemView.findViewById(R.id.fixPrice);
        addToCart = itemView.findViewById(R.id.buttonTwo);
    }
}}

1 Ответ

0 голосов
/ 01 июня 2018


В основном код на вашем github отличается от того, что вы опубликовали.Вероятно, причина проблемы:
В list_sale.xml Я заметил, что в этом представлении com.makeramen.roundedimageview.RoundedImageView вы устанавливаете параметр android:clickable="true", тогда, если вы хотите увеличить событие click для родителя (RelativeLayout), оно не будет работать.Решение: уберите эту строку android:clickable="true".

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