【发布时间】:2017-02-09 10:01:26
【问题描述】:
我的数据库如下所示:
我的活动代码是这样的:
public class FirebaseActivity extends AppCompatActivity {
ListView lv;
private FirebaseDatabase database;
private DatabaseReference myRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firebase);
final List<String> glocations = new ArrayList<String>();
lv = (ListView) findViewById(R.id.lv);
database = FirebaseDatabase.getInstance();
myRef = database.getReference();
myRef.child("Users").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> children = dataSnapshot.getChildren();
for (DataSnapshot child: children){
String data = child.getValue(String.class);
glocations.add(data);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,glocations);
lv.setAdapter(adapter);
}
}
现在,每当我尝试从主要活动的设置菜单中打开活动时,我的应用程序都会崩溃。我想要做的就是显示纬度、经度和时间戳,每次用户通过使用带有数组适配器的简单列表在列表视图中更改它们时。 这是一项不同的活动,而不是主要活动。主要的工作完美。我看了无数个视频,我无法理解我的错误。
我从 logcat 得到的错误是这样的
致命异常:主要 进程:com.thanoszoug.geofenceexample,PID:9954 com.google.firebase.database.DatabaseException:转换失败 java.util.HashMap 类型的值到 String 在 com.google.android.gms.internal.zzbqi.zzaD(未知来源) 在 com.google.android.gms.internal.zzbqi.zzb(未知来源) 在 com.google.android.gms.internal.zzbqi.zza(未知来源) 在 com.google.firebase.database.DataSnapshot.getValue(未知来源) 在 com.thanoszoug.geofenceexample.FirebaseActivity$1.onDataChange(FirebaseActivity.java:42) 在 com.google.android.gms.internal.zzbmz.zza(未知来源) 在 com.google.android.gms.internal.zzbnz.zzYj(未知来源) 在 com.google.android.gms.internal.zzboc$1.run(未知来源) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:158) 在 android.app.ActivityThread.main(ActivityThread.java:7229) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
【问题讨论】:
-
如果您的应用程序崩溃,logcat 将包含异常的堆栈跟踪。请将其添加到您的问题中,以提高您获得帮助的机会。
-
完成,感谢您注意到这一点。
标签: android listview firebase firebase-realtime-database android-arrayadapter