【问题标题】:Error to comparing contact number with firebase database phone number in android在android中将联系人号码与firebase数据库电话号码进行比较时出错
【发布时间】:2019-03-22 11:20:54
【问题描述】:
   **

我的应用很迷 在android中将联系人号码与firebase数据库电话号码进行比较时出错 userlist.add(mUser) 中的错误;在 MainActivity 中: [在此处输入图片说明][1]

**

E/AndroidRuntime: FATAL EXCEPTION: main

    java.lang.NullPointerException
        at com.example.mohaiminur.com.whatp.MainActivity$LoadContact$1.onDataChange(MainActivity.java:160)
        at com.google.firebase.database.zzp.onDataChange(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzfc.zza(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzgx.zzdr(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzhd.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:800)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:194)
        at 

【问题讨论】:

  • 对于未来的问题:1) 请先搜索错误消息,因为 NullPointerException 在其他问题中已经很好地涵盖了,2) 尝试用更少的代码重现问题,因为它很可能有人将帮助更快。见how to create a minimal, complete, verifiable example
  • 谢谢你的建议,我是新来的

标签: android firebase firebase-realtime-database contacts android-contacts


【解决方案1】:

你永远不会在任何地方初始化userList。当您调用userlist.add(mUser); 时会给出NullPointerException,因为您无法将用户添加到不存在的列表中。

要解决此问题,请在尝试向其中添加用户之前创建列表。比如在onCreate

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = (RecyclerView) findViewById(R.id.contacts_list);
    recyclerView.setHasFixedSize(true);

    recyclerView.setLayoutManager(layoutManager);
    selectUsers = new ArrayList<Contacts>();
    showContacts();

    userList = new ArrayList<>();
}

【讨论】:

  • 我已经完成了并且也在“protected void onPostExecute(Void aVoid)”方法中完成了我也将所有“selectUsers”替换为“userList”,但它没有在recyleview中显示数据库中的联系人列表
  • 如果NullPointerException 在我在回答中解释的更改之后消失了,那么这是您发布的问题的正确答案。我建议为新问题打开一个新问题,我强烈建议您遵循how to create a minimal, complete, verifiable example 中概述的建议。
【解决方案2】:

您的 ArrayList 未初始化,这就是您的应用崩溃的原因。首先初始化你的 ArrayList。

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

    recyclerView = (RecyclerView) 
                findViewById(R.id.contacts_list);
    recyclerView.setHasFixedSize(true);

    recyclerView.setLayoutManager(layoutManager);
    selectUsers = new ArrayList<Contacts>();
    userlist = new ArrayList<Contacts>();
    showContacts();

}

【讨论】:

  • 你为什么评论这行。 //finalUsers.add(mUser);
  • 因为我试图找到解决方案,所以我把 finalUsers.add(mUser);在“if(name.equals(phone))”之前看到可以加值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 2013-05-19
相关资源
最近更新 更多