Android RecyclerView没有预览

Android RecyclerView没有预览,android,firebase,android-layout,firebase-realtime-database,android-recyclerview,Android,Firebase,Android Layout,Firebase Realtime Database,Android Recyclerview,我正在尝试制作一个新闻应用程序、Firebase数据库和Recyclerview,向用户显示网站的新闻源,以及一个webview来查看网站。我已经将每个细节添加到了我的数据库中,但我的问题是它没有显示在我的主页中 这是主页课程: public class home extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener { RecyclerView.LayoutManager layoutManager; p

我正在尝试制作一个新闻应用程序、Firebase数据库和Recyclerview,向用户显示网站的新闻源,以及一个
webview
来查看网站。我已经将每个细节添加到了我的数据库中,但我的问题是它没有显示在我的
主页中

这是
主页
课程:

public class home extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener {

RecyclerView.LayoutManager layoutManager;
private RecyclerView mPeopleRV;
SpotsDialog dialog;
DatabaseReference mDatabase;
SwipeRefreshLayout swipeLayout;
private FirebaseRecyclerAdapter<News, home.NewsViewHolder> mPeopleRVAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

     mDatabase = FirebaseDatabase.getInstance().getReference().child("News");
    mDatabase.keepSynced(true);
    mPeopleRV = (RecyclerView) findViewById(R.id.news_home);

    DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference().child("News");
    Query personsQuery = personsRef.orderByKey();

    mPeopleRV.hasFixedSize();
    mPeopleRV.setLayoutManager(new LinearLayoutManager(this));


    FirebaseRecyclerOptions personsOptions = new FirebaseRecyclerOptions.Builder<News>().setQuery(personsQuery, News.class).build();

    mPeopleRVAdapter = new FirebaseRecyclerAdapter<News, home.NewsViewHolder>(personsOptions) {
        @Override
        protected void onBindViewHolder(home.NewsViewHolder holder, final int position, final News model) {

            holder.setNewsimage(getBaseContext(), model.getNewsimage());
            holder.setTitle(model.getTitle());
            holder.setNewssource(model.getNewssource());
            holder.setDescription(model.getDescription());


            holder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String url = model.getUrl();
                    Intent intent = new Intent(getApplicationContext(), newswebview.class);
                    intent.putExtra("id", url);
                    startActivity(intent);
                }
            });
        }


        @Override
        public home.NewsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.news, parent, false);

            return new home.NewsViewHolder(view);
        }
    };

    mPeopleRV.setAdapter(mPeopleRVAdapter);

}

@Override
public void onStart() {
    super.onStart();
    mPeopleRVAdapter.startListening();
}

@Override
public void onStop() {
    super.onStop();
    mPeopleRVAdapter.stopListening();


}

public static class NewsViewHolder extends RecyclerView.ViewHolder{
    View mView;
   public   NewsViewHolder(View itemView){
        super(itemView);
        mView = itemView;
    }

    public void setNewsimage(Context ctx, String image){
        ImageView post_image =  mView.findViewById(R.id.newsimage);
        Picasso.with(ctx).load(image).into(post_image);
    }

    public void setTitle(String title){
        TextView post_title = mView.findViewById(R.id.newsTitle);
        post_title.setText(title);
    }

    public void setNewssource(String source){
        TextView post_desc = mView.findViewById(R.id.newsSource);
        post_desc.setText(source);
    }

    public void setDescription(String desc){
        TextView post_desc = mView.findViewById(R.id.newsDesc);
        post_desc.setText(desc);
    }
}
@亚历克斯马莫,这是新的埃罗

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: app.ayodkay.com.ajudeme, PID: 27305
              com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type app.ayodkay.com.ajudeme.classes.News
                  at com.google.firebase.database.obfuscated.zzbw.zzb(com.google.firebase:firebase-database@@16.0.2:2423)
                  at com.google.firebase.database.obfuscated.zzbw.zza(com.google.firebase:firebase-database@@16.0.2:79)
                  at com.google.firebase.database.DataSnapshot.getValue(com.google.firebase:firebase-database@@16.0.2:214)
                  at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:29)
                  at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:15)
                  at com.firebase.ui.common.BaseCachingSnapshotParser.parseSnapshot(BaseCachingSnapshotParser.java:35)
                  at com.firebase.ui.common.BaseObservableSnapshotArray.get(BaseObservableSnapshotArray.java:52)
                  at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:106)
                  at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:122)
                  at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6673)
                  at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6714)
                  at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5647)
                  at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5913)
                  at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
                  at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
                  at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
                  at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
                  at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
                  at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
                  at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
                  at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3529)
                  at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4082)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
                  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
                  at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
                  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
                  at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
                  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
                  at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
                  at android.view.View.layout(View.java:16000)
                  at android.view.ViewGroup.layout(ViewGroup.java:5228)
                at android.view.ViewRootImpl.perf

问题是你失去了一个孩子。要解决此问题,在向数据库添加数据时应使用
push()
方法,如下所示:

mDatabase = FirebaseDatabase.getInstance().getReference().child("News").push();
mDatabase.setValue(/* yourObject */);
然后,您可以使用以下查询:

DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference().child("News");
Query personsQuery = personsRef.orderByKey();

嗯,用数据库结构截图更新你的问题。从那里,我们可以跟踪错误。您可以尝试通过这种方式从firebase数据库获取数据。请添加您的数据库结构并使用@进行响应。您好@Ayodele Kayode您可以显示您的AndroidManifest.xml代码吗?我想说你忘了添加internet权限了吗?@AlexMamo()现在我有一个新错误,我已经更新了问题,这样你就可以看到新的错误。事实上,你又遇到了一个错误,这意味着最初的错误消失了,这是个好消息:)但这听起来是一个新问题,基本上应该被视为另一个问题,我不能在评论中回答,也不能仅使用上述数据。作为个人猜测,我认为你正在使用一个错误的数据库引用,但是为了遵循这个一致性的规则,请用A发布另一个新的问题,所以我和其他用户可以帮助你。如果你认为我的答案帮助了你最初的问题,请考虑通过点击复选来接受它。✔️) 在投票箭头的左边。应该换成绿色。我会很感激的。谢谢!
DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference().child("News");
Query personsQuery = personsRef.orderByKey();