Charger 2 champs d'une BDD dans un ListView
Bonjour,
J'ai pas trop l'habitude du java, encore moins de la programmation sous android :aie:
Je voudrais charger le contenu de 2 champs d'un SELECT dans un listview avec Nom en premier, et un petit commentaire dessous.
Lorsque je teste mon projet, je tombe sur les résultats suivants:
<nom du package>.Menu@<hash>
Mais ca correspond bien au nombre d'élements de mon SELECT (c'est déja pas mal):mouarf::mouarf::mouarf:
Voici mon code:
Ma class DAO
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class MenuBDD {
private SQLiteDatabase bdd;
private MaDatabase MaBaseSQLite;
private String[] allColumnsMenu = { MaDatabase.COLUMN_MENU_NOMMENU,
MaDatabase.COLUMN_MENU_COMMENU };
public MenuBDD(Context context){
//Création de la bdd
MaBaseSQLite = new MaDatabase(context);
}
...
public List<Menu> getAllMenu(int num_menu) {
List<Menu> menus = new ArrayList<Menu>();
Cursor cursor = bdd.query(MaDatabase.TABLE_MENU,allColumnsMenu,MaDatabase.COLUMN_MENU_NUMMENU + " = " + num_menu,null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
Menu menu = cursorToMenu(cursor);
menus.add(menu);
cursor.moveToNext();
}
cursor.close();
return menus;
}
private Menu cursorToMenu(Cursor cursor){
Menu menu = new Menu();
menu.SetNom_menu(cursor.getString(0));
menu.SetCom_menu(cursor.getString(1));
return menu;
} |
Ma class
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
public class Menu {
private int id_menu;
private int num_menu;
private String nom_menu;
private String com_menu;
private String icone_menu;
public Menu(){}
public Menu(int id_menu,int num_menu, String nom_menu, String com_menu, String icone_menu){
this.id_menu = id_menu;
this.num_menu = num_menu;
this.nom_menu = nom_menu;
this.com_menu = com_menu;
this.icone_menu = icone_menu;
}
public int GetId() {
return id_menu;
}
public void SetId(int id_menu){
this.id_menu = id_menu;
}
...
public String GetNom_menu(){
return nom_menu;
}
public void SetNom_menu(String nom_menu){
this.nom_menu = nom_menu;
}
public String GetCom_menu(){
return com_menu;
}
public void SetCom_menu(String com_menu){
this.com_menu = com_menu;
} |
Et enfin ma méthode principale de chargement
Code:
1 2 3 4 5 6 7 8 9 10
|
private void RefreshMenu(int num_menu){
List<Menu> values = datasource.getAllMenu(num_menu);
ArrayAdapter<Menu> adapter = new ArrayAdapter<Menu>(this,android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
} |
J'ai du mal a voir ou se situe le problème, j'ai essayé de modifier le DAO pour n'afficher qu'une colonne, mais le résultat est le même.
Pourriez vous m'aider ?
Merci