我一直在努力让Firebase数据出现在ListView中,但我不能。列表返回,但方式错误
有人可以帮助我吗?
非常感谢!
这是Ideia课程:
public class Ideia {
private String distrito, clube, nomeCompleto, nomeIdeia, descricaoIdeia;
public Ideia(){}
public String getDistrito() {
return distrito;
}
public void setDistrito(String distrito) {
this.distrito = distrito;
}
public String getClube() {
return clube;
}
public void setClube(String clube) {
this.clube = clube;
}
public String getNomeCompleto() {
return nomeCompleto;
}
public void setNomeCompleto(String nomeCompleto) {
this.nomeCompleto = nomeCompleto;
}
public String getNomeIdeia() {
return nomeIdeia;
}
public void setNomeIdeia(String nomeIdeia) {
this.nomeIdeia = nomeIdeia;
}
public String getDescricaoIdeia() {
return descricaoIdeia;
}
public void setDescricaoIdeia(String descricaoIdeia) {
this.descricaoIdeia = descricaoIdeia;
}
}
此处MyIdeaActivity:
public class MyIdeaActivity extends AppCompatActivity {
private static final String TAG = "PostDetailActivity";
private ListView mListView;
private Button mBtnMenu;
private FirebaseDatabase firebaseDatabase;
private DatabaseReference mDatabaseRef;
private List<Ideia> mList;
private ArrayAdapter mListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_idea_activity);
firebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseRef = firebaseDatabase.getReference();
mListView = (ListView) findViewById(R.id.lv_my_idea_myidea);
mBtnMenu = (Button) findViewById(R.id.btn_menu_myidea);
mList = new ArrayList<>();
mListAdapter = new ArrayAdapter<Ideia>(this, android.R.layout.simple_dropdown_item_1line, mList);
mListView.setAdapter(mListAdapter);
mDatabaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()) {
Ideia i = data.getValue(Ideia.class);
mList.add(i);
mListAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
答案 0 :(得分:0)
在toString()
类
Ideia
方法
public class Ideia {
private String distrito, clube, nomeCompleto, nomeIdeia, descricaoIdeia;
public Ideia(){}
public String getDistrito() {
return distrito;
}
public void setDistrito(String distrito) {
this.distrito = distrito;
}
public String getClube() {
return clube;
}
public void setClube(String clube) {
this.clube = clube;
}
public String getNomeCompleto() {
return nomeCompleto;
}
public void setNomeCompleto(String nomeCompleto) {
this.nomeCompleto = nomeCompleto;
}
public String getNomeIdeia() {
return nomeIdeia;
}
public void setNomeIdeia(String nomeIdeia) {
this.nomeIdeia = nomeIdeia;
}
public String getDescricaoIdeia() {
return descricaoIdeia;
}
public void setDescricaoIdeia(String descricaoIdeia) {
this.descricaoIdeia = descricaoIdeia;
}
@Override
public String toString() {
return distrito; // set field here which you want to display in list
}
}
答案 1 :(得分:0)
当您使用firebase时,最好使用firebase UI因此在您的情况下如果您必须显示列表,那么您可以使用firebase ListAdapter或firebase Recyclerview适配器。它专为firebase设计,可以非常有效地管理。
请按照firebase Recyclerview适配器的此代码帮助您 Firebase with ListView and Recyclerview