не может решить проблему метода в setAdapter для FirebaseRecyclerAdapter - PullRequest
0 голосов
/ 01 ноября 2018

Я работаю над приложением для ведения блогов Firebase, используя FirebaseRecyclerAdapter. Основная проблема возникает из-за setAdapter в onStart (), из-за этой проблемы. При выполнении этой операции моя запись в журнале выдает следующие ошибки:

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.ChildEventListener com.google.firebase.database.Query.addChildEventListener(com.google.firebase.database.ChildEventListener)' on a null object reference
    at com.firebase.ui.database.FirebaseArray.onCreate(FirebaseArray.java:54)
    at com.firebase.ui.common.BaseObservableSnapshotArray.addChangeEventListener(BaseObservableSnapshotArray.java:97)
    at com.firebase.ui.database.FirebaseRecyclerAdapter.startListening(FirebaseRecyclerAdapter.java:49)
    at com.example.lenovo.skanda.QuoteList.onStart(QuoteList.java:58)

Я получаю сообщение об ошибке на setAdapter.

QuoteList.java

public class QuoteList extends AppCompatActivity {

    private RecyclerView mQuotesList;

    private DatabaseReference mDatabase;


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

        mQuotesList = (RecyclerView) findViewById(R.id.quotes_list);
        mQuotesList.setHasFixedSize(true);
        mQuotesList.setLayoutManager(new LinearLayoutManager(this));

    }

    @Override
    protected void onStart() {
        super.onStart();

        FirebaseRecyclerOptions<Quote> options =
                new FirebaseRecyclerOptions.Builder<Quote>()
                        .setQuery(mDatabase, Quote.class)
                        .build();

        FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Quote, QuoteViewHolder>(options) {
            @Override
            public QuoteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.quote_row, parent, false);
                return new QuoteViewHolder(view);
            }

            @Override
            protected void onBindViewHolder(QuoteViewHolder holder, int position, Quote model) {
                holder.setQuote(model.getQuotes());
                holder.setAuthor(model.getQuote_Author());
            }
        };
        mDatabase.setAdapter(adapter); 
    }

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

        public void setQuote(String Quote){
            TextView post_quote = (TextView) mView.findViewById(R.id.post_quote);
            post_quote.setText(Quote);
        }

        public void setAuthor(String Author){
            TextView post_author = (TextView) mView.findViewById(R.id.post_author);
            post_author.setText(Author);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }

}

Quote.java

package com.example.lenovo.skanda;

public class Quote {

    private String Images, Quote_Author, Quotes;

    public Quote(){

    }

    public Quote(String images, String quote_Author, String quotes) {
        Images = images;
        Quote_Author = quote_Author;
        Quotes = quotes;
    }

    public String getImages() {
        return Images;
    }

    public void setImages(String images) {
        Images = images;
    }

    public String getQuote_Author() {
        return Quote_Author;
    }

    public void setQuote_Author(String quote_Author) {
        Quote_Author = quote_Author;
    }

    public String getQuotes() {
        return Quotes;
    }

    public void setQuotes(String quotes) {
        Quotes = quotes;
    }
}

Получение ошибки в коде: `mDatabase.setAdapter (адаптер);

, который не может разрешить метод 'setAdapter (com.firebase.ui.database.FirebaseRecyclerAdapter)' `

Пожалуйста, помогите мне .. Большое спасибо заранее.

...