簡體   English   中英

如何從firebase中將此特定數據檢索到我的android studio應用程序列表視圖中?

[英]How do I retrieve this specific data from firebase into my android studio application listview?

我正在嘗試從google firebase檢索特定於每個登錄用戶的特定數據。基本上,我想要檢索的數據是用戶ID下列出的“字段”數據,但是在google firebase實時數據庫的單獨類中。 我希望能夠在我的應用程序的活動中的'listview'中顯示每個字段的數據,但每當我嘗試運行它時,應用程序就會關閉。

我已經嘗試在“用戶”類的引用下運行應用程序。但是這不起作用。我也嘗試在“字段”類下運行,但這也不起作用。

這是我的FarmActivity.java,我想要顯示字段數據的'listview'。

public class FarmActivity extends AppCompatActivity {


ListView listView;
FirebaseDatabase database;
DatabaseReference ref;
ArrayList<String> list;
ArrayAdapter<String> adapter;
FieldInformation fieldInformation;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_farm);

    listView = (ListView )findViewById(R.id.listView);
    database = FirebaseDatabase.getInstance();
    ref = database.getReference("Fields");
    list = new ArrayList<>();
    adapter = new ArrayAdapter<String>(this, R.layout.user_field_info, R.id.userInfo, list);
    fieldInformation = new FieldInformation();

    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds:dataSnapshot.getChildren()){
                fieldInformation = ds.getValue(FieldInformation.class);
                list.add(fieldInformation.getFieldName().toString() + "  " + "\n"+ fieldInformation.getCrop().toString() + "  ");
            }
            listView.setAdapter(adapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

這是我的FieldInformation.java,我已經為FarmActivity指定了字符串

public class FieldInformation {


public String crop;
public String fieldName;

public FieldInformation(String crop, String fieldName) {

    this.crop = crop;
    this.fieldName = fieldName;

}

public FieldInformation(){

}

public String getCrop() {
    return crop;
}

public void setCrop(String crop) {
    this.crop = crop;
}

public String getFieldName() {
    return fieldName;
}

public void setFieldName(String fieldName) {
    this.fieldName = fieldName;
}
}

你的適配器應該有一個列表,你的適配器應該有一個列表的構造函數。 你在FarmActivity中初始化你的適配器,然后刪除你的set adapter,然后在初始化adapter之后設置它,最后把adapter.notifydatasetchanged(); 你在哪里設置你的適配器。 隨意發布您的適配器,並幫助您解決它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM