android - 如何让firebase中的所有信息显示在屏幕上
问题描述
在此处输入图像描述我试图在屏幕上显示以下信息,但没有显示类型。我认为我的代码应该可以工作,但它只显示用户名..我不确定下面的代码哪里出错了,因为我可以成功地将信息插入数据库但无法检索所有信息..
public class MainActivity extends AppCompatActivity {
EditText editTextName;
Spinner spinnerGenres;
Button buttonAdd;
DatabaseReference databaseArtists;
ListView listViewArtists;
List<Artist> artistList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseOptions options = new FirebaseOptions.Builder()
.setProjectId("Faourite Place in Melbourne")
.setApplicationId("")
.setApiKey("")
// setStorageBucket(...)
.build();
databaseArtists = FirebaseDatabase.getInstance("https://favourite-place-in-melbourne.firebaseio.com/").getReference();
editTextName = (EditText)findViewById(R.id.editTextName);
buttonAdd = (Button)findViewById(R.id.buttonAddArtist);
spinnerGenres = (Spinner) findViewById(R.id.spinnerGenres);
listViewArtists = (ListView)findViewById(R.id.listViewArtists);
artistList = new ArrayList<>();
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addArtist();
}
});
}
@Override
protected void onStart() {
super.onStart();
databaseArtists.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
artistList.clear();
for(DataSnapshot artistSnapshot: dataSnapshot.getChildren()) {
Artist artist = artistSnapshot.getValue(Artist.class);
artistList.add(artist);
}
ArtistList adapter = new ArtistList(MainActivity.this, artistList);
listViewArtists.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void addArtist() {
String name = editTextName.getText().toString().trim();
String genre = spinnerGenres.getSelectedItem().toString();
if(!TextUtils.isEmpty(name)) {
String id = databaseArtists.push().getKey();
Artist user = new Artist(id, name, genre);
databaseArtists.child(id).setValue(user);
Toast.makeText(this, "Favourite Places added", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this,"You should enter a name", Toast.LENGTH_LONG).show();
}
}
}
解决方案
推荐阅读
- android - 正确使用反射获取Class方法
- amazon-web-services - 当 lambda 死亡时会发生什么?
- typescript - 指定参数必须具有 keyof 属性
- listview - 切换切换时隐藏数据单元格中的行
- java - 只有创建视图层次结构的原始线程才能在 asynctask 中触及其视图错误
- python - DecisionTreeClassificationModel - 如何在 PySpark 中解析和可视化决策树?
- javascript - javascript 通过引用和内存
- python - 如何使用 for 循环将多个 .so 文件导入 Python?
- python - 为什么 simpleblobdetector 会漏掉这个 blob?
- python - 为什么 Python 3 字符串函数似乎会降低浮点数的精度?