将数据检索到listview

时间:2017-01-17 05:04:15

标签: android listview firebase firebase-realtime-database

我一直在努力让Firebase数据出现在ListView中,但我不能。列表返回,但方式错误

see the picture

有人可以帮助我吗?

非常感谢!

这是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) {

        }
    });

   }
 }

2 个答案:

答案 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