Нож для масла Адаптер ocClick RecyclerView

Из одного из отображаемых текстов я дам функцию прослушивания кликов. Кодирование выше — это кодирование в списке адаптеров. Я использую хранилище ножей для масла. могут ли мои друзья помочь мне по-отечески сделать функцию прослушивания кликов?

public class AllproductHolder extends RecyclerView.ViewHolder {

    @BindView(R.id.txt_id)
    TextView txt_id;
    @BindView(R.id.txt_id_product_category)
    TextView txt_id_product_category;
    @BindView(R.id.txt_id_currency)
    TextView txt_id_currency;
    @BindView(R.id.txt_name_product)
    TextView txt_name_product;
    @BindView(R.id.txt_price_capital)
    TextView txt_price_capital;
    @BindView(R.id.txt_price_sale)
    TextView txt_price_sale;
    @BindView(R.id.txt_description)
    TextView txt_description;
    @BindView(R.id.txt_sku)
    TextView txt_sku;
    @BindView(R.id.txt_stock)
    TextView txt_stock;
    @BindView(R.id.txt_condition)
    TextView txt_condition;
    @BindView(R.id.txt_deliverable)
    TextView txt_deliverable;
    @BindView(R.id.txt_downloadable)
    TextView txt_downloadable;
    @BindView(R.id.txt_target_gender)
    TextView txt_target_gender;
    @BindView(R.id.txt_target_age)
    TextView txt_target_age;
    @BindView(R.id.txt_visibility)
    TextView txt_visibility;
    @BindView(R.id.image)
    ImageView image;
    @BindView(R.id.txt_image)
    TextView txt_image;


    public AllproductHolder(@NonNull View itemView) {
        super(itemView);

        ButterKnife.bind(this, itemView);
    }

}

person indriyanto Nugroho    schedule 09.12.2019    source источник
comment
Добавить onClickListener к определенному представлению после привязки   -  person Md. Asaduzzaman    schedule 09.12.2019
comment
вы можете увидеть код для меня?   -  person indriyanto Nugroho    schedule 09.12.2019


Ответы (2)


Вы можете просто добавить аннотацию @OnClick к вашему классу ViewHolder. Что-то вроде этого:

public class AllproductHolder extends RecyclerView.ViewHolder {

   ...

   public AllproductHolder(@NonNull View itemView) {
     super(itemView);
     ButterKnife.bind(this, itemView);

   }

    @OnClick(R.id.image) // Change to your view id.
    void onImageClicked() {
      int position = getAdapterPosition();
      // Do something for related item.
    }

}
person ישו אוהב אותך    schedule 09.12.2019
comment
Если щелкнуть изображение, оно появится через строку, которую я привел к следующему действию. ' @OnClick(R.id.image) void onImageClicked() { int position = getAdapterPosition(); // Делаем что-то для связанного элемента. Деталь намерения = новое намерение (getContext(), DetailProduct.class); }' - person indriyanto Nugroho; 09.12.2019
comment
` @OnClick(R.id.image) void onImageClicked() { int position = getAdapterPosition(); // Делаем что-то для связанного элемента. Деталь намерения = новое намерение (getContext(), DetailProduct.class); }` - person indriyanto Nugroho; 09.12.2019
comment
Если щелкнуть изображение, оно появится через строку, которую я привел к следующему действию. ' @OnClick(R.id.image) void onImageClicked() { int position = getAdapterPosition(); // Делаем что-то для связанного элемента. Деталь намерения = новое намерение (getContext(), DetailProduct.class); }' @ישו אוהב אותך - person indriyanto Nugroho; 09.12.2019
comment
Чего вы пытаетесь достичь? Открытие активности при нажатии View? - person ישו אוהב אותך; 09.12.2019
comment
Я думаю, вы можете просто сделать это, используя следующий код: Intent intent = new Intent(itemView.getContext(), DetailProduct.class) ; - person ישו אוהב אותך; 09.12.2019
comment
да, верно, когда я нажимаю на изображение, появляются детали текстового представления и изображения @ישו אוהב אותך - person indriyanto Nugroho; 09.12.2019
comment
Вам нужно создать намерение с помощью: Intent intent = new Intent(itemView.getContext(), DetailProduct.class) ;. Затем установите полезную нагрузку намерения с помощью intent.putExtra() - person ישו אוהב אותך; 09.12.2019
comment
prnt.sc/q85le0 не работает, это принудительно закрывает приложения @ישו אוהב אותך - person indriyanto Nugroho; 09.12.2019
comment
prnt.sc/q85lv7 строка 128 prnt.sc/q85m05 строка 43 prnt.sc/q85m5g строка 29 - person indriyanto Nugroho; 09.12.2019

есть два подхода, просто измените txt_id на желаемый вид:

// you can use this approach
    public AllproductHolder(@NonNull View itemView) {
        super(itemView);

        ButterKnife.bind(this, itemView);

        txt_id.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = getAdapterPosition();
            }
        });
    }

// or this
    @OnClick(R.id.txt_id) 
    void onImageClicked() {
        int position = getAdapterPosition();
    }
}

Поскольку вы используете ButterKnife, я бы предложил второй подход

person Antonis Radz    schedule 09.12.2019
comment
Если щелкнуть изображение, оно появится через строку, которую я привел к следующему действию. ' @OnClick(R.id.image) void onImageClicked() { int position = getAdapterPosition(); // Делаем что-то для связанного элемента. Деталь намерения = новое намерение (getContext(), DetailProduct.class); }' @Антонис Радз - person indriyanto Nugroho; 09.12.2019
comment
положение адаптера должно использоваться для получения желаемого изображения из вашего списка данных - person Antonis Radz; 09.12.2019
comment
Я бы посоветовал изучить несколько примеров и документацию о том, как работает Android-адаптер и шаблон RecyclerView и как он реализован. - person Antonis Radz; 09.12.2019