第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Android 中的 Firebase 實時數(shù)據(jù)庫檢索 ListView 上的數(shù)據(jù)不起作用

從 Android 中的 Firebase 實時數(shù)據(jù)庫檢索 ListView 上的數(shù)據(jù)不起作用

侃侃爾雅 2021-10-27 13:57:07
我正在嘗試從 firebase 動態(tài)檢索數(shù)據(jù)并將它們顯示在頁面上,但是當我這樣做時,沒有錯誤但注意到屏幕上只是一個空屏幕(見下圖)任何人都可以幫助我嗎?這是我的Firebase數(shù)據(jù)庫結構。這是我的java代碼:package com.example.atheer.booklyv1;import android.app.ListActivity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import com.google.firebase.database.DataSnapshot;import com.google.firebase.database.DatabaseError;import com.google.firebase.database.DatabaseReference;import com.google.firebase.database.FirebaseDatabase;import com.google.firebase.database.ValueEventListener;import java.util.ArrayList;public class orgServices extends AppCompatActivity {ListView ListView;FirebaseDatabase database;DatabaseReference ref;ArrayList<Service> list;ArrayAdapter<Service>  adapter;Service ser;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_org_services);        ser = new Service();        ListView = (ListView) findViewById(R.id.ListView);        database = FirebaseDatabase.getInstance();        ref =database.getReference().child("client");        list = new ArrayList<>();        adapter = new ArrayAdapter<Service>(this, R.layout.service_info,R.id.serviceInfo,list);        ref.addValueEventListener(new ValueEventListener(){            @Override            public void onDataChange(DataSnapshot dataSnapshot){for(DataSnapshot ds: dataSnapshot.getChildren()){    if (dataSnapshot.hasChild("services")){    ser= ds.getValue(Service.class);    list.add(ser);}}ListView.setAdapter(adapter);            }            @Override            public void onCancelled(DatabaseError databaseError){            }        });    }}
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

問題在于使用dataSnapshot. 你在做什么是,如果你發(fā)現(xiàn)與名稱的子services試圖從當前獲得的數(shù)據(jù)dataSnapshot中Services.class。


您應該做的是,正確設置databaseReference您選擇的孩子。


因此,您可以在if語句中試試這個,而不是您用來檢索的代碼:


String name = dataSnapshot.child("name").getValue(String.class);

String name = dataSnapshot.child("price").getValue(Integer.class);

String name = dataSnapshot.child("rating").getValue(Integer.class);

String name = dataSnapshot.child("totalpoint").getValue(Integer.class);

但是,如果您想在不設置不同getValue()語句的情況下獲取所有值,則可以使用map此方法。這可以幫助您同時更新和檢索數(shù)據(jù)庫中的值。


您可以參考以下鏈接以了解有關FirebaseDatabase使用map.


查看完整回答
反對 回復 2021-10-27
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

要解決這個問題,只需移動以下代碼行:

adapter = new ArrayAdapter<Service>(this, R.layout.service_info,R.id.serviceInfo,list);

就在之前:

ListView.setAdapter(adapter);

當你設置適配器時,你的列表是空的,這就是為什么屏幕是空的。


查看完整回答
反對 回復 2021-10-27
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號