Ho un problema con il mio progetto firebase
. Ho seguito i passaggi su firebase
documentazione GitHub, ma ho avuto questa eccezioneCosa causa questa eccezione java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [class android.view.View]
java.lang.RuntimeException: java.lang.NoSuchMethodException: <init>
[class android.view.View]
questa è una classe ViewHolder
che non è una classe interna.
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);
}
}
e questa è la Firebase relativi codice
@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);
sto usando firebaseRecyclerView
per popolare modello di dati, e la classe non è viewHolder
classe interna della mia attività
Nota: l'eccezione si verifica quando inizia l'attività che contiene recyclerView
.
Due possibili cause di seguito. Se quelli non lo sono, [modifica] (http://stackoverflow.com/posts/36972335/edit) la tua domanda per includere il codice minimo con il quale possiamo riprodurre il problema. –
Il costruttore 'ProductViewHolder' non è pubblico. –
Il problema risolto Thans molto –