上面是我试图从中获取的firebase数据库。 你可以看到我有一张桌子"叫" Make"。我已经成功地将这些数据提取到我的应用程序中的Listview中。这个代码如下。
我现在需要从" VW_Data"中提取所有数据。表。这张桌子上有超过1000个孩子名为" 0"高达" 1000"每个标题都有相同的标题,例如"轴承","海拔"等但具有不同的价值观。我想能够拉动"轴承"价值仅来自" VW_Data"的所有1000个孩子。并显示在列表中。
但是我试图只尝试拉动" VW_Data / 0 / Bearing"多种没有效果的方法。
以下是此类的更新代码:
public class Graphview extends Activity
{
//Holds the values gathered from firebase
final ArrayList<String> graphlist = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//Sets the layout according to the XML file
setContentView(R.layout.activity_graphview);
//XML variable
final ListView listViewG = findViewById(R.id.listviewG);
DatabaseReference database = FirebaseDatabase.getInstance().getReference().child("VW_Data");
database.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
for (DataSnapshot datas : dataSnapshot.getChildren())
{
String bearing = (String) datas.child("Bearing").getValue();
//Add the info retrieved from datasnapshot into the ArrayList
graphlist.add(bearing);
arrayAdapter = new ArrayAdapter<>(Graphview.this, R.layout.itemview, graphlist);
listViewG.setAdapter(arrayAdapter);
//Will refresh app when the data changes in the database
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}//End onCreate()
答案 0 :(得分:0)
试试这个:
DatabaseReference database = FirebaseDatabase.getInstance().getReference().child("VW_Data");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> verticalSnapshotItr = dataSnapshot.getChildren();
if (verticalSnapshotItr != null) {
for (DataSnapshot verticalItemSnapshot : verticalSnapshotItr) {
String altitude = (String) verticalItemSnapshot.child("Altitude").getValue();
// Parse rest keys here
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
答案 1 :(得分:0)
试试这个:
DatabaseReference db = FirebaseDatabase.getInstance()
.getReference()
.child("VW_Data");
db.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
String bearing = datas.child("Bearing").getValue().toString();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
快照位于VW_Data
然后使用for循环,您将能够在内部迭代&#34; 0&#34;并检索值bearing