我正在使用FirebaseUi填充一个RecyclerView,但当我启动应用程序时,什么都没有显示。我看到了很多教程和视频,但都没有效果,也许这是一个愚蠢的问题,但我是android新手,以下是我正在使用的所有代码:
这是模型课
public class Fretes {
private String mColeta;
private String mEntrega;
private String mStatus;
public Fretes() {
}
public Fretes(String mColetaLat, String mColetaLong, String mEntregaLat, String mEntregaLong, String mStatus) {
this.mColeta= mColetaLat;
this.mEntrega = mEntregaLat;
this.mStatus = mStatus;
}
public String getmColeta() {
return mColeta;
}
public void setmColeta(String mColetaLat) {
this.mColeta = mColeta;
}
public String getmEntrega() {
return mEntrega;
}
public void setmEntrega(String mEntrega) {
this.mEntrega = mEntrega;
}
public String getmStatus() {
return mStatus;
}
public void setmStatus(String mStatus) {
this.mStatus = mStatus;
}
}
这是holder类
public class FretesHolder extends RecyclerView.ViewHolder {
private final TextView text_coleta;
private final TextView text_entrega;
private final TextView text_status;
public FretesHolder(View itemView) {
super(itemView);
text_coleta = (TextView) itemView.findViewById(R.id.text_coleta);
text_entrega = (TextView) itemView.findViewById(R.id.text_entrega);
text_status = (TextView) itemView.findViewById(R.id.text_status);
}
public void setText_coleta(String coleta){
setText_coleta(coleta);
}
public void setText_entrega(String entrega){ setText_entrega(entrega); }
public void setText_status(String status){ setText_status(status); }
public class FretesHolder extends RecyclerView.ViewHolder {
private final TextView text_coleta;
private final TextView text_entrega;
private final TextView text_status;
public FretesHolder(View itemView) {
super(itemView);
text_coleta = (TextView) itemView.findViewById(R.id.text_coleta);
text_entrega = (TextView) itemView.findViewById(R.id.text_entrega);
text_status = (TextView) itemView.findViewById(R.id.text_status);
}
public void setText_coleta(String coleta){
setText_coleta(coleta);
}
public void setText_entrega(String entrega){ setText_entrega(entrega); }
public void setText_status(String status){ setText_status(status); }
}
这里是主课堂
public class RecyclerViewTest extends AppCompatActivity {
private FirebaseRecyclerAdapter<Fretes, FretesHolder> adapter;
private RecyclerView mRecyclerFretes;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reclycler_view);
mRecyclerFretes = (RecyclerView) findViewById(R.id.recyclerTest);
mRecyclerFretes.setHasFixedSize(true);
setupAdapter();
}
private void setupAdapter() {
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("test");
FirebaseRecyclerOptions<Fretes> options =
new FirebaseRecyclerOptions.Builder<Fretes>()
.setQuery(query, Fretes.class)
.build();
adapter = new FirebaseRecyclerAdapter<Fretes, FretesHolder>(options) {
@Override
public FretesHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.layout_fretes, parent, false);
return new FretesHolder(view);
}
@Override
protected void onBindViewHolder(FretesHolder holder, int position, Fretes model) {
holder.setText_status(model.getmStatus());
holder.setText_entrega(model.getmEntrega());
holder.setText_coleta(model.getmColeta());
}
};
mRecyclerFretes.setAdapter(adapter);
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
@Override
public void onStop(){
super.onStop();
adapter.stopListening();
}
}
我看不出我错过了什么,也看不出哪里错了,如果能得到一些帮助,我将不胜感激。谢谢
编辑
我添加了onCreate上缺少的这一行
mRecyclerFretes.setLayoutManager(new LinearLayoutManager(this));
现在我发现了这个错误:(
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type tiagov.rideabike1.Model.Fretes
at com.google.android.gms.internal.zzear.zzb(Unknown Source:842)
at com.google.android.gms.internal.zzear.zza(Unknown Source:0)
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source:10)
at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:23)
at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:14)
at com.firebase.ui.common.BaseCachingSnapshotParser.parseSnapshot(BaseCachingSnapshotParser.java:32)
at com.firebase.ui.common.BaseObservableSnapshotArray.get(BaseObservableSnapshotArray.java:45)
at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:103)
at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:118)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6482)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6515)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5458)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5724)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5563)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5559)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2229)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1516)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:608)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3693)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3410)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1710)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:346)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
at android.view.Choreographer.doCallbacks(Choreographer.java:778)
at android.view.Choreographer.doFrame(Choreographer.java:710)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6567)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
我的数据库