我在问这里之前尝试过一些教程,但是当根据其他人的教程尝试重现时,有一个字符串错误的hashmap和类似的东西。
我的怀疑如下:
我在下面的方式我可以从Firebase获取值,但我想只获取“食物”(肉类,鸡肉,...)中的信息,如果它没有信息则没有信息或不。以及如何列出项目而不是将它们放在一起。 感谢的
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.database.ChildEventListener;
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;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
DatabaseReference dref;
ListView listview;
ArrayList < String > list = new ArrayList < > ();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
final ArrayAdapter < String > adapter = new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, list);
dref = FirebaseDatabase.getInstance().getReference();
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String teste = dataSnapshot.child("Restarant").child("foods").getValue().toString();
adapter.add(teste);
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
答案 0 :(得分:0)
试试这个
public class MainActivity extends AppCompatActivity {
DatabaseReference dref;
ListView listview;
ArrayList<String> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(ListView)findViewById(R.id.listview);
final ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
dref=FirebaseDatabase.getInstance().getReference().child("Restarant");
dref.child("foods").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
list.add(dataSnapshot.child("chicken").getValue(String.class));
list.add(dataSnapshot.child("meat").getValue(String.class));
list.add(dataSnapshot.child("pork").getValue(String.class));
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}