2017-01-17 34 views
0

我一直在試圖讓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) { 

     } 
    }); 

    } 
} 
+0

http://stackoverflow.com/questions/27475434/how-to-use-an-arrayadapter-in-android-of-custom-objects –

+0

預期的行爲是什麼? –

+0

您正在將Ideia對象存儲到列表中。這就是爲什麼結果看起來有點過分。你想在列表中展示什麼?如果是這樣,請創建一個自定義適配器並顯示來自Ideia對象的項目。 –

回答

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

當您使用Firebase時,最好使用Firebase UI所以在您的情況下如果您必須顯示列表,那麼您可以使用Firebase ListAdapter或Firebase Recyclerview適配器。它專爲其管理非常高效的Firebase而設計。

遵循火力Recyclerview適配器這段代碼可以幫助你 Firebase with ListView and Recyclerview

相關問題