我是Firebase的新手。我想将Firebase数据添加到我的微调器中。我遵循了这个答案How to get a String List from Firebase to fill a Spinner,但是我的微调工具没有接收到任何东西。
这是我的代码:
//Value event listener for realtime data update
ref.child("Tabela-Consulta").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
final List<String> nomeConsulta = new ArrayList<String>();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
//Getting the data from snapshot
TabelaConsulta consultaName = postSnapshot.child("nomeconsulta").getValue(TabelaConsulta.class);
nomeConsulta.add(consultaName.getConsultanome());
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, nomeConsulta);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
我的数据模型:
public class TabelaConsulta {
private String consultanome;
public TabelaConsulta(){
}
public String getConsultanome() {
return consultanome;
}
public void setConsultanome(String consultanome){
this.consultanome = consultanome;
}
}
谢谢
发布于 2017-10-22 21:29:39
试试这个:
myRef.child("Tabela-Consulta").child("nomeconsulta").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> nomeConsulta = new ArrayList<String>();
for (DataSnapshot areaSnapshot : dataSnapshot.getChildren()) {
String consultaName = areaSnapshot.getValue(String.class);
nomeConsulta.add(consultaName);
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(YOUR_ACTIVITY.this, android.R.layout.simple_spinner_item, nomeConsulta);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(skularAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
请记住定义您的firebase引用:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("YOUR_REFERENCE");
并定义您的微调器:
Spinner spinner = (Spinner) findViewById(YOUR_SPINNER);
还要让你的数据库看起来像这样:
通过像这样添加您的值:
将您的值放入" "
,然后使用[]
关闭所有内容。
希望它能帮上忙!
发布于 2017-01-25 19:13:40
请关注以下内容
Firebase网址:https://example-id:firebaseio.com/Tabela-Consulta
MainActivity.java
:
public class MainActivity extends Activity {
private List<String> nomeConsulta = new ArrayList<String>();
private ArrayAdapter<String> dataAdapter;
private DatabaseReference mDatabaseReference;
private Spinner mSpinner
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, nomeConsulta);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner = (Spinner)findViewById(R.id.your_reference_spinner);
mSpinner.setAdapter(dataAdapter);
mDatabaseReference = FirebaseDatabase.getInstance().getReference();
mDatabaseReference.child("Tabela-Consulta").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: snapshot.getChildren()) {
TabelaConsulta data = snapshot.getValue(TabelaConsulta.class);
nomeConsulta.add(data.getConsultanome());
}
dataAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
https://stackoverflow.com/questions/41849638
复制相似问题