我的firebase项目有问题。
我按照firebase GitHub文档上的步骤进行操作,但出现此异常

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);
    }
}

这是与firebase相关的代码
@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类不是我的 Activity 的内部类

注意:当包含recyclerView的 Activity 开始时,会发生异常。

最佳答案

您的自定义ViewHolder子类很可能是:

  • 缺少构造函数public MyViewHolder(View itemView) {... }
  • 该类是在另一个类中定义的,在这种情况下,您需要将其标记为静态public static class MyViewHolder
  • 关于android - 导致此异常的原因是java.lang.RuntimeException : java. lang.NoSuchMethodException : <init> [class android. view.View],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36972335/

    10-13 02:00