android - 得到运行时错误 : java. lang.RuntimeException : java. lang.NoSuchMethodException

标签 android android-studio firebase-realtime-database

问题是,当我尝试将 firebase 数据放入 RecyclerView 时出现运行时错误。 错误是

java.lang.RuntimeException: java.lang.NoSuchMethodException

我上次实现了它,但现在我不明白我做错了什么。

我的主类设置 firebase 初始化-

 public class Shayari extends AppCompatActivity {
        private RecyclerView recyclerView;
        private DatabaseReference reference;
        TextView texttest;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_shayari);

        texttest=findViewById(R.id.test);//just for test


        reference= FirebaseDatabase.getInstance().getReference("Catogory/Love");
        recyclerView=findViewById(R.id.recyclerview);
        recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false));
        recyclerView.setHasFixedSize(true);

        FirebaseRecyclerAdapter<DataModel,DataViewHolder> adapter = new FirebaseRecyclerAdapter<DataModel, DataViewHolder>(
                DataModel.class,
                R.layout.item_recyclerview,
                DataViewHolder.class,
                reference) {
            @Override
            protected void populateViewHolder(DataViewHolder viewHolder, DataModel model, int position) {
                viewHolder.setTitle(model.getTitle());
                viewHolder.setShayari(model.getShayari());

            }
        };
        recyclerView.setAdapter(adapter);
        texttest.setText(reference.toString());
    }

    public class DataViewHolder extends RecyclerView.ViewHolder{
        TextView text_title,text_shayari;
        public DataViewHolder(View itemView) {
            super(itemView);
            text_title=itemView.findViewById(R.id.titletext);
            text_shayari=itemView.findViewById(R.id.shayaritext);
        }

        public void setShayari(String shayari) {

            text_shayari.setText(shayari);
        }

        public void setTitle (String title){

            text_title.setText(title);

        }
    }
}

获取数据的模型类-

class DataModel {
    private String titles, shayaris;

    public DataModel() {
    }

    public DataModel(String titles, String shayaris) {
        this.titles = titles;
        this.shayaris = shayaris;
    }


    public String getTitle()
    {
        return titles;
    }

    public void setTitle(String title) {
       this.titles = title;
    }

    public String getShayari() {
        return shayaris;
    }

    public void setShayari(String shayari) {
        this.shayaris = shayari;
    }
}

这是我的 firebase 层次结构

https://unikshayari.firebaseio.com/Catogory/Love/s01/shayaris “数据”

最佳答案

内部类必须是静态的。

改变这个

 public class DataViewHolder extends RecyclerView.ViewHolder

 public static class DataViewHolder extends RecyclerView.ViewHolder

关于android - 得到运行时错误 : java. lang.RuntimeException : java. lang.NoSuchMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50656114/

相关文章:

java.lang.NullPointerException :com. google.android.gms.maps.GoogleMap.moveCamera

android - Admob 广告无法加载状态详细信息 有限的广告服务

java - 有没有办法在 fragment 可见后运行方法?

尽管在 ubuntu 14.04 中安装了 KVM,但 Android Studio 显示 KVM 错误

ios - 遍历 firebase 数据库

android - 从 Firebase 数据库获取的数据显示在 3 个单独的警报对话框中,而不是一个

java - 在 SD 卡中创建并写入文件

带有适配器回收单元的android gridview header 解决方案

Android Studio 3.1 不显示 "Transitions"类别

rest - 如何禁用 Firebase 数据库的 REST API 调用?