检索 Firebase 数据并在 Android Studio 的 ListView 中显示

杰克昆特

我目前正在构建一个 Android 应用程序并使用 Firebase 作为其后端数据库,但是我很难检索数据并将它们显示在ListView. 我尝试了一些代码,但是一旦我显示列表活动,应用程序就会崩溃。

下面是我的数据库的屏幕截图,还有我的代码和我尝试运行时遇到的错误:

Firebase 数据库

在此处输入图片说明

public class ClientLIstActivity extends AppCompatActivity {

private Button clientSelect;
private ListView clientlistView;
private FirebaseDatabase database;
private DatabaseReference databaseReference;

private ArrayList<String> list = new ArrayList<String>();
private ArrayAdapter<String> adapter;

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

    clientlistView = (ListView) findViewById(R.id.clientListView);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);
    clientlistView.setAdapter(adapter);
    adapter.notifyDataSetChanged();
    databaseReference = FirebaseDatabase.getInstance().getReference().child("Clients");


    clientSelect = (Button) findViewById(R.id.selectClient);

    clientSelect.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed();
        }
    });

    databaseReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
           String value = dataSnapshot.getValue(String.class);
           list.add(value);
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}


}

错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.javytharanee.quicksolattendance, PID: 6602
              com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String
                  at com.google.android.gms.internal.zzepg.zzb(Unknown Source:93)
                  at com.google.android.gms.internal.zzepg.zza(Unknown Source:0)
                  at com.google.firebase.database.DataSnapshot.getValue(Unknown Source:10)
                  at com.javytharanee.quicksolattendance.ClientLIstActivity$2.onChildAdded(ClientLIstActivity.java:53)
                  at com.google.android.gms.internal.zzegg.zza(Unknown Source:71)
                  at com.google.android.gms.internal.zzelk.zzcal(Unknown Source:2)
                  at com.google.android.gms.internal.zzelq.run(Unknown Source:71)
                  at android.os.Handler.handleCallback(Handler.java:873)
                  at android.os.Handler.dispatchMessage(Handler.java:99)
                  at android.os.Looper.loop(Looper.java:193)
                  at android.app.ActivityThread.main(ActivityThread.java:6669)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

客户端对象类:

public class Client {
String name;
String location;
String latitude;
String longitude;

public Client(String location, String latitude, String longitude) {
    this.location = location;
    this.latitude = latitude;
    this.longitude = longitude;
}

public Map toMap() {
    Map client = new HashMap();

    client.put("Name", this.name);
    client.put("Location", this.location);
    client.put("Latitude", this.latitude);
    client.put("Longitude", this.longitude);

    return client;
}

public void setName(String name) {
    this.name = name;
}
}
亚历克斯·马莫

你得到那个错误,因为你想念一个孩子。要解决此问题,请更改以下代码行:

String value = dataSnapshot.getValue(String.class);

String value = dataSnapshot.child("Name").getValue(String.class);

logat 中的输出将是所有客户端的名称。

PS还要注意,你会在你的项目中遇到其他错误,因为你的Client类中的字段名称都是小写的,而在你的数据库中都是以大写字母开头。名称应该相同。也请看这里

public class Client {
    private String name, location, latitude, longitude;

    public Client() {}

    public Client(String name, String location, String latitude, String longitude) {
        this.name = name;
        this.location = location;
        this.latitude = latitude;
        this.longitude = longitude;
    }

    public String getName() { return name; }
    public String getLocation() { return location; }
    public String getLatitude() { return latitude; }
    public String getLongitude() { return longitude; }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Firebase读取数据,并在listview中填充

来自分类Dev

如何从Android中的Firebase数据库检索特定节点

来自分类Dev

从数据库中检索数据并在Android中使用MPAndroidChart在条形图中显示它们

来自分类Dev

Firebase在Swift中检索数据

来自分类Dev

从Firebase Android Studio检索数据

来自分类Dev

Firebase-在Android中检索数据

来自分类Dev

从Firebase数据库android检索数据

来自分类Dev

在Android Studio中从Firebase数据库检索图像时出现问题

来自分类Dev

从Android Studio中的JSON文件在ListView中显示图像

来自分类Dev

从Android Studio中的JSON文件在ListView中显示图像

来自分类Dev

从Android中的API将数据检索到ListView

来自分类Dev

在ListView中从SQLite检索数据

来自分类Dev

在ListView Android中显示回显数据

来自分类Dev

从数据库加载更多数据并在android的listview中显示

来自分类Dev

在Android Studio App中的Listview中交替显示颜色

来自分类Dev

Android在SQlite数据库中存储Listview数据,并在Listview中创建活动时检索数据

来自分类Dev

在Swift中从Firebase检索数据

来自分类Dev

从Firebase检索孩子的信息回到android studio

来自分类Dev

如何在 Firebase Android 中检索数据数组列表?

来自分类Dev

尽管数据显示在浏览器中,但我无法将数据从服务器检索到 android studio

来自分类Dev

在 Android Studio 中从 Firebase 检索

来自分类Dev

如何使用android在listview中显示数据

来自分类Dev

Android Studio,如何从Sqlite数据库中检索数据并将其显示到textview中?

来自分类Dev

Android firebase 在listview 错误中检索数据

来自分类Dev

从 Firebase 检索 ArrayList 并将其显示在 ListView 中

来自分类Dev

如何从android中的firebase从特定节点检索数据

来自分类Dev

android studio中的firebase数据更改方法

来自分类Dev

如何仅从 firebase 检索 UID 并在 TableView 中显示

来自分类Dev

从 firebase 中检索并在 ejs 中呈现

Related 相关文章

  1. 1

    从Firebase读取数据,并在listview中填充

  2. 2

    如何从Android中的Firebase数据库检索特定节点

  3. 3

    从数据库中检索数据并在Android中使用MPAndroidChart在条形图中显示它们

  4. 4

    Firebase在Swift中检索数据

  5. 5

    从Firebase Android Studio检索数据

  6. 6

    Firebase-在Android中检索数据

  7. 7

    从Firebase数据库android检索数据

  8. 8

    在Android Studio中从Firebase数据库检索图像时出现问题

  9. 9

    从Android Studio中的JSON文件在ListView中显示图像

  10. 10

    从Android Studio中的JSON文件在ListView中显示图像

  11. 11

    从Android中的API将数据检索到ListView

  12. 12

    在ListView中从SQLite检索数据

  13. 13

    在ListView Android中显示回显数据

  14. 14

    从数据库加载更多数据并在android的listview中显示

  15. 15

    在Android Studio App中的Listview中交替显示颜色

  16. 16

    Android在SQlite数据库中存储Listview数据,并在Listview中创建活动时检索数据

  17. 17

    在Swift中从Firebase检索数据

  18. 18

    从Firebase检索孩子的信息回到android studio

  19. 19

    如何在 Firebase Android 中检索数据数组列表?

  20. 20

    尽管数据显示在浏览器中,但我无法将数据从服务器检索到 android studio

  21. 21

    在 Android Studio 中从 Firebase 检索

  22. 22

    如何使用android在listview中显示数据

  23. 23

    Android Studio,如何从Sqlite数据库中检索数据并将其显示到textview中?

  24. 24

    Android firebase 在listview 错误中检索数据

  25. 25

    从 Firebase 检索 ArrayList 并将其显示在 ListView 中

  26. 26

    如何从android中的firebase从特定节点检索数据

  27. 27

    android studio中的firebase数据更改方法

  28. 28

    如何仅从 firebase 检索 UID 并在 TableView 中显示

  29. 29

    从 firebase 中检索并在 ejs 中呈现

热门标签

归档