получить ошибку во время выполнения: java.lang.RuntimeException: java.lang.NoSuchMethodException - PullRequest
0 голосов
/ 02 июня 2018

Проблема в том, что я получаю ошибку времени выполнения, когда пытаюсь получить данные 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 "данные"

1 Ответ

0 голосов
/ 02 июня 2018

внутренний класс должен быть статическим.

изменить это

 public class DataViewHolder extends RecyclerView.ViewHolder

на

 public static class DataViewHolder extends RecyclerView.ViewHolder
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...