android - इस अपवाद को क्या कारण java.lang.RuntimeException: java.lang.NoSuchMethodException:<init>



firebase android-recyclerview (1)

मुझे अपने firebase परियोजना के साथ समस्या हो रही है मैंने firebase गिटहब प्रलेखन पर दिए चरणों का पालन किया, लेकिन मुझे यह अपवाद मिला

java.lang.RuntimeException: java.lang.NoSuchMethodException: <init>
[class android.view.View]

यह एक ViewHolder वर्ग है जो एक आंतरिक वर्ग नहीं है।

public class ProductViewHolder extends RecyclerView.ViewHolder{
public View mView;
public ImageView img;
public TextView title;
public TextView price;
public RatingBar stars;


ProductViewHolder(View itemView) {
    super(itemView);

    mView = itemView;
    img = (ImageView) itemView.findViewById(R.id.productImg);
    title = (TextView) itemView.findViewById(R.id.txtTitle);
    price = (TextView) itemView.findViewById(R.id.txtPrice);
    stars = (RatingBar) itemView.findViewById(R.id.ratingBar);
    }
}

और यह फायरबसे संबंधित कोड है I

@Override
protected void onStart() {
    super.onStart();

    // Recycler adapter
    FirebaseRecyclerAdapter<Product, ProductViewHolder> adapter =
            new FirebaseRecyclerAdapter<Product, ProductViewHolder>(
                    Product.class,
                    R.layout.product_list_item,
                    ProductViewHolder.class,
                    firebaseRef.child("product")) {

                @Override
                protected void populateViewHolder(ProductViewHolder productViewHolder, Product product, int i) {
                    Picasso.with(ShopsApp.getLyShopsAppContext())
                            .load(product.getImgUrl())
                            .placeholder(R.drawable.none)
                            .into(productViewHolder.img);
                    productViewHolder.title.setText(product.getTitle());
                    productViewHolder.price.setText(product.getPrice());
                    productViewHolder.stars.setRating(4.0f);
                }
            };

    recyclerView1.setAdapter(adapter);

मैं डेटा मॉडल को पॉप्युलेट करने के लिए firebaseRecyclerView का उपयोग कर रहा हूं, और viewHolder क्लास मेरी गतिविधि का आंतरिक वर्ग नहीं है

नोट: अपवाद तब होता है जब गतिविधि जिसमें recyclerView देता है

https://ffff65535.com


आपके कस्टम ViewHolder उप-वर्ग की संभावना सबसे अधिक है:

  • एक कन्स्ट्रक्टर public MyViewHolder(View itemView) {... } लापता public MyViewHolder(View itemView) {... } या
  • कक्षा को किसी अन्य वर्ग में परिभाषित किया जाता है, इस स्थिति में आपको उसे स्थैतिक public static class MyViewHolder रूप में चिह्नित करना होगा