Rumah > Java > javaTutorial > Bagaimana untuk Memaparkan ID dan Skor Pengguna Firebase dengan Cekap dalam ListView?

Bagaimana untuk Memaparkan ID dan Skor Pengguna Firebase dengan Cekap dalam ListView?

Linda Hamilton
Lepaskan: 2024-12-01 12:10:12
asal
593 orang telah melayarinya

How to Efficiently Display Firebase User IDs and Scores in a ListView?

Memaparkan Data Firebase dalam ListView dengan Score Property

Apabila cuba memaparkan kedua-dua ID Pengguna dan Score daripada data Firebase dalam ListView, nilai skor mungkin pada mulanya tidak tersedia. Berikut ialah panduan komprehensif untuk menangani isu ini dan mempersembahkan kedua-dua sifat dengan berkesan.

Sifat Asynchronous Firebase API

Kaedah onDataChange() yang digunakan untuk mendapatkan data daripada Firebase adalah tak segerak , bermakna ia boleh dipanggil sebelum objek Score ditambahkan pada senarai. Untuk menangani perkara ini, isytiharkan senarai dalam kaedah onDataChange() atau gunakan teknik untuk mengendalikan tingkah laku tak segerak dengan berkesan.

Struktur dan Jenis Data

Pastikan kelas Skor anda mengikut Konvensyen Penamaan Java untuk ahli data. Selain itu, ubah suainya seperti berikut:

public class Score {
    private String userId;
    private String score;

    // ... [other class methods]
}
Salin selepas log masuk

Pendapatan Data dan Paparan Menggunakan String

Untuk memaparkan data menggunakan kelas String, gunakan coretan kod di bawah:

ListView listView = (ListView) findViewById(R.id.list_view);
List<String> list = new ArrayList<>(); // Declare list within onDataChange() method
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapter);
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference scoreRef = rootRef.child("score");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String userId = ds.child("userId").getValue(String.class);
            String score = ds.child("score").getValue(String.class);
            list.add(userId + " / " + score);
        }
        arrayAdapter.notifyDataSetChanged();
    }

    // ... [onCancelled() method]
};
scoreRef.addListenerForSingleValueEvent(eventListener);
Salin selepas log masuk

Pendapatan dan Paparan Data Menggunakan Skor Kelas

Untuk mendapatkan dan memaparkan data menggunakan kelas Skor, gunakan coretan kod berikut:

ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            Score score = ds.getValue(Score.class);
            String userId = score.getUserId();
            String score = score.getScore();
            list.add(userId + " / " + score);
        }
        arrayAdapter.notifyDataSetChanged();
    }

    // ... [onCancelled() method]
};
scoreRef.addListenerForSingleValueEvent(eventListener);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan ID dan Skor Pengguna Firebase dengan Cekap dalam ListView?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan