FirebaseListAdapter.startListening()中的错误 [英] Error in FirebaseListAdapter.startListening()

查看:62
本文介绍了FirebaseListAdapter.startListening()中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Firebase出现问题.调试应用程序时出现错误

Hi I've got a problem with my Firebase. When I debug my app i've got error

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void com.firebase.ui.database.FirebaseListAdapter.startListening()'

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.firebase.ui.database.FirebaseListAdapter.startListening()' on a null object reference

下面是我的代码:

 private void displayChatMessage() {


    FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>()
            .setQuery(FirebaseDatabase.getInstance().getReference(""), ChatMessage.class).setLayout(R.layout.messages).build();

    ListView listOfMessages = (ListView)findViewById(R.id.list_of_messages);

    adapter = new FirebaseListAdapter<ChatMessage>(options) {
        @Override
        protected void populateView(View v, ChatMessage model, int position) {
            // zdefiniuj elementy modelu

            TextView messageText = v.findViewById(R.id.message_text);
            TextView messageUser = v.findViewById(R.id.message_user);
            TextView messageTime = v.findViewById(R.id.message_time);

            // ustaw wartosci
            messageText.setText(model.getMessageText());
            messageUser.setText(model.getMessageUser());

            // format daty pokazywanej w wiadomosciach
            messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
                    model.getMessageTime()));
        }
    };

    listOfMessages.setAdapter(adapter);

    }
@Override
protected void onStart() {
   super.onStart();
   adapter.startListening();
}


@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}

推荐答案

您有以下内容:

@Override
protected void onStart() {
 super.onStart();
 adapter.startListening();
}

现在onStart()是活动生命周期,在这里您开始监听值.

Now onStart() is an activity lifecycle, and here you are starting to listen for values.

活动生命周期如下:

onCreate()>onStart()>onResume()

这三种方法被调用,因此您的活动出现在您的面前.并且由于您在onStart()中使用adapter,所以适配器的初始化必须在onCreate()之前的方法中.因此,该adapter = new FirebaseListAdapter<ChatMessage>(options) {...}必须位于onCreate()内部.

Those three methods are called so your activity appears infront of you. And since you are using adapter inside onStart(), then the initialization of the adapter needs to be in the method before it which is onCreate(). So this adapter = new FirebaseListAdapter<ChatMessage>(options) {...} has to be inside onCreate().

这篇关于FirebaseListAdapter.startListening()中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆