0
ich nur den entsprechenden Code teilen:FirebaseUI NoSuchMethodException:
MainActivity:
RecyclerView recyclerView;
DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_todo);
Firebase.setAndroidContext(this);
databaseReference = FirebaseDatabase.getInstance().getReference();
recyclerView = (RecyclerView) findViewById(R.id.list);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
FirebaseRecyclerAdapter<Grupo,GruposAdapter.ViewHolder> adapter =
new FirebaseRecyclerAdapter<Grupo, GruposAdapter.ViewHolder>(
Grupo.class,
R.layout.item,
GruposAdapter.ViewHolder.class,
databaseReference.child("Grupos")
) {
@Override
protected void populateViewHolder(GruposAdapter.ViewHolder viewHolder, Grupo model, int position) {
viewHolder.id.setText(String.valueOf(model.getId()));
viewHolder.grupo.setText(model.getGroupname());
}
};
recyclerView.setAdapter(adapter);
}
Der Fehler:
04-19 14:50:52.886 22120-22120/datos.agregar.firebase.ejemplo.com.ejemploagregardatoscffirebase E/AndroidRuntime: FATAL EXCEPTION: main
Process: datos.agregar.firebase.ejemplo.com.ejemploagregardatoscffirebase, PID: 22120
java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [class android.view.View]
Warum NoSuchMethodException
? Ideen?
MIT FEST:
public static class ViewHolder extends RecyclerView.ViewHolder{
public TextView id,grupo;
public CardView cardview;
public ViewHolder(View itemView){
super(itemView);
id = (TextView) itemView.findViewById(R.id.idgrupo);
grupo = (TextView) itemView.findViewById(R.id.grupo);
cardview = (CardView) itemView.findViewById(R.id.cardview);
}
}
Hallo, Sie haben Recht, mit der inneren Klasse wie statisch fixiert, aber warum? Warum brauche ich den Klassen-Viewholder? – josedlujan
Weil Sie es als innere Klasse in einer anderen Klasse hinzugefügt haben. Java fügt solchen Klassen einen impliziten Feld- und Konstruktorparameter hinzu, um auf das enthaltende Objekt zu verweisen (z. B. verwenden Sie dies, wenn Sie in einem Click-Handler auf "MainActivity.this" verweisen). Das Hinzufügen von 'static' zur Klasse entfernt dieses Feld/Parameter. –