0

I've been trying to get the Firebase data to appear in the ListView, but I can not. The list returns, but in the wrong way

see the picture

Could someone help me, please?

Thanks a lot!

Here is Ideia class:

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;
}

}

Here 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) {

        }
    });

   }
 }
AL.
  • 36,815
  • 10
  • 142
  • 281
  • http://stackoverflow.com/questions/27475434/how-to-use-an-arrayadapter-in-android-of-custom-objects – Mike M. Jan 17 '17 at 05:07
  • What is the expected behavior? – Jeroen Heier Jan 17 '17 at 05:07
  • You are storing the Ideia object to the list. That's why the result looks weired. What all things do you want to show in the list? If so, create a custom adapter and show items from the Ideia object. – Febi M Felix Jan 17 '17 at 05:13

2 Answers2

0

Just Override toString() Method in Ideia class

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
}
}
Mayur Raval
  • 3,250
  • 6
  • 34
  • 57
0

When you are working with firebase, It is good practice to use firebase UI So in your case If you have to display list then you can use firebase ListAdapter or firebase Recyclerview adapter for it. It's designed for firebase it manages very efficiently.

Follow this code for firebase Recyclerview Adapter it helps you Firebase with ListView and Recyclerview

Vijay Makwana
  • 506
  • 5
  • 14