【发布时间】:2018-07-13 21:28:34
【问题描述】:
我正在尝试将数据从 firebase 传递到小部件,数据显示在调试中,但每次我将参数传递给小部件时应用程序都会崩溃,这是错误:
java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“java.lang.String java.lang.Object.toString()” 参考在 com.example.amrkamal.textme.MainActivity$4.onDataChange(MainActivity.java:224) 在 com.google.android.gms.internal.firebase_database.zzfc.zza(未知 资料来源:13) 在 com.google.android.gms.internal.firebase_database.zzgx.zzdr(未知 来源:2) 在 com.google.android.gms.internal.firebase_database.zzhd.run(未知 来源:71) 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
我取消了List<MessageModel> chatModelsArrayList;
这是我的代码,我在 onCreate 中编写了所有这些
chatModelsArrayList = new ArrayList<>();
chatModelsArrayList.clear();
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.child("messages").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
MessageModel usersModels = new MessageModel(
snapshot.child("name").getValue().toString(),
snapshot.child("text").getValue().toString());
chatModelsArrayList.add(usersModels); }
updateWidgetScreen(chatModelsArrayList);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Toast.makeText(getApplicationContext(), R.string.AddedTowidget, Toast.LENGTH_LONG).show();
}
然后这个来更新小部件
private void updateWidgetScreen(List<MessageModel> chatModelsList) {
String users = getString(R.string.messages_list_name);
for (MessageModel user : chatModelsList) {
users = users
+ user.getName() + ": "
+ user.getText() + " \n";
}
WidgetUpdateService.startWidgetUpdate(this, users);
}
请问有什么问题吗?有什么解决办法吗?
【问题讨论】:
标签: android firebase-realtime-database