Dans mon post précédent j’ai affiché la liste des recettes enregistrées ici, dans mon post d’aujourd’hui je vais afficher le détail d’une recette sélectionnée sur le click de ma liste (nom de la recette et la recette). Je vais d’abord créer le xml de ma page qui va me servir à afficher les infos de la recette sélectionnée.
Pour récupérer l’identifiant de chaque recette je vais modifier ma méthode renvoi_liste_recette de ma classe BDAcess, en créant un tableau de retour au rang 0 je renvoie le nom des recettes et au rang 1 la liste des identifiants
public ArrayList[] renvoi_liste_recette(){
String[] aTableCollonne=new String[] {"nom_larecette","id_larecette"};
Cursor objCursor = mDb.query(RECETTE_TABLE,aTableCollonne,null,null,null,null,null,null);
int iPostNomchaine = objCursor.getColumnIndex("nom_larecette");
int iPostId = objCursor.getColumnIndex("id_larecette");
int itotal = objCursor.getCount();
ArrayList aTableRetourNom = new ArrayList();
ArrayList aTableRetourId = new ArrayList();
objCursor.moveToFirst();
ArrayList[] aTableRetour = new ArrayList[2];
/* Check if our result was valid. */
if (objCursor != null) {
if (objCursor.isFirst()) {
int i = 0;
do {
i++;
String resultsring = objCursor.getString(iPostNomchaine);
String resultId = objCursor.getString(iPostId);
aTableRetourNom.add(resultsring);
aTableRetourId.add(resultId);
objCursor.moveToNext();
}while(!objCursor.isLast());
}
}
aTableRetour[0]=aTableRetourNom;
aTableRetour[1]=aTableRetourId;
return aTableRetour;//tableau de retour rang 0 le nom des recettes rang 1 id des recettes
}
Toujours dans ma classe BDAccess je vais rajouter une méthode info_recette (qui renvoie les informations sur une recette grâce à son identifiant) en passant par argument l’identifiant de la recette
public String[] info_recette(String id_recette){
String[] aTableauRetour = new String[2];
String[] aTableCollonne=new String[] {"nom_larecette","id_larecette","recette_larecette"};
String sFiltre="id_larecette='"+id_recette+"'";
Cursor objCursor = mDb.query(RECETTE_TABLE,aTableCollonne,sFiltre,null,null,null,null,null);
int iPostNomchaine = objCursor.getColumnIndex("nom_larecette");
int iPostRecette = objCursor.getColumnIndex("recette_larecette");
objCursor.moveToFirst();
String resultNomRecette = objCursor.getString(iPostNomchaine);
String resultLaRecette = objCursor.getString(iPostRecette);
aTableauRetour[0]=resultNomRecette;
aTableauRetour[1]=resultLaRecette;
return aTableauRetour;
}
Dans ma classe principale je vais implémenter deux classes AdapterView.OnItemClickListener, View.OnClickListener donc l’en tête de ma classe principale donne donc
public class TestRecette extends Activity implements AdapterView.OnItemClickListener, View.OnClickListener{…
je rajoute donc deux méthodes dans ma classe principale onItemClick et onClick, la méthode qui m’interesse ici c’est onItemClick c’est elle qui est appelée quand il y a un click sur ma liste de recette
public void onItemClick(AdapterView parent, View v, int position, long id) {
setContentView(R.layout.larecette);//on appelle notre xml
final TextView nomrecette = (TextView) findViewById(R.id.textrecette);
final TextView larecette = (TextView) findViewById(R.id.textlarecette);
ArrayList atableautmp = this.aTableauResult[1];
objBd.open();
String idRecette = (String) atableautmp.get(position);
String[] aTableauInfoRecette = objBd.info_recette(idRecette);
nomrecette.setText(aTableauInfoRecette[0]);//affichage du nom de la recette
larecette.setText(aTableauInfoRecette[1]);// affichage de la recette
objBd.close();
}
n’oubliez pas d’importer les classes
import android.app.*;
import android.os.Bundle;
import android.view.*;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.view.View.OnClickListener;
code source ici
Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo