Android, résultats d'une requête mais pas dans un toast

Fermé
Pepito39 Messages postés 91 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 21 mars 2014 - Modifié par Jeff le 7/11/2014 à 16:24
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 - 19 juin 2013 à 08:51
Bonjour,

Je souhaite afficher les résultats d'un requête mais pas dans un toast, pour pouvoir utiliser le résultat, mais je vois pas du tout comment faire..
Auriez vous une solution à proposer? :)
Voici le code où j'aimerais insérer l'affichage.
cliBDD.open();
cliBDD.getClientwithNom(nomclient);
if (cliBDD != null){
//affichage du ou des client(s)

}
else
{
Toast.makeText(this, "Ce client n'est pas enregistré dans la base, vérifier l'orthographe ou bien ajouter un nouveau client.", Toast.LENGTH_LONG).show();
}
}


Et les fonctions que j'utilise pour cela :
public client getClientwithNom(String nom){
Cursor c = bdd.query(TABLE_CLIENT, new String[] {COL_ID, COL_NOM, COL_PRENOM, COL_ADRESSE, COL_CP, COL_VILLE, COL_MAIL, COL_TEL, COL_PIZZAENCOURS, COL_PIZZATOTAL}, COL_NOM + " LIKE \"" + nom +"\"", null, null, null, null);
return cursorToClient(c);
}
public client cursorToClient(Cursor c){
if(c.getCount()== 0)
{
return null;
}
c.moveToFirst();
client cli = new client();
cli.setId(c.getInt(NUM_COL_ID));
cli.setNom(c.getString(NUM_COL_NOM));
cli.setPrenom(c.getString(NUM_COL_PRENOM));
cli.setAdresse(c.getString(NUM_COL_ADRESSE));
cli.setCp(c.getString(NUM_COL_CP));
cli.setVille(c.getString(NUM_COL_VILLE));
cli.setMail(c.getString(NUM_COL_MAIL));
cli.setTel(c.getString(NUM_COL_TEL));
cli.setNbpizzaencours(c.getInt(NUM_COL_PIZZAENCOURS));
cli.setNbpizzatotal(c.getInt(NUM_COL_PIZZATOTAL));

c.close();

return cli;


}


J'pensais à un tableau mais je vois pas comment faire.
Merci d'avance. :)
A voir également:

1 réponse

scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
31 mai 2013 à 14:59
Bonjour quelle est la forme du/des résultats ?

Comment souhaitez vous les utiliser ? uniquement utile pour l'utilisateur ? donc en graphique ? ou de manière à pouvoir récupérer les données pour les utiliser dans d'autres méthodes, fonctions ou objets ?

d'après ce que je vois il s'agit de placer les données sur l'interface utilisateur :

Pour cela plusieurs solutions (propre) :

-Créer une nouvelle activité avec un nouveau layout (XML ou uniquement code java) pour afficher chacun des éléments que vous avez :
Avantage : si vous faites un retour, vous retournez a la première activity sans soucis de mise à jour

-Soit utiliser une View défini sur l'activity en cours pour afficher l'ensemble des résultats
Désavantage : il faut coder un bouton pour revenir aux informations avant qu'elles soient affichées

-Soit afficher les données directement sur un canvas géré par android, en gros utiliser canvas.drawText(string, x, y , paint)
pour cela il faut une View avec un canvas disponible.

-Sinon solution la plus facile une seule TextView placé dans le XML de votre programme sur lequel sera affiché toutes les informations ligne par ligne avec possibilité de scroller votre TextView

Les façons d'afficher des données à l'écran ne manque pas ... et je n'ai certainement pas toutes les possibilités en tête, mais avec cela on peut déjà fait pas mal de chose.

Dites moi ce que vous souhaitez.
-1
Pepito39 Messages postés 91 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 21 mars 2014 1
31 mai 2013 à 15:31
En fait, j'essaye de coder une carte de fidelité. Je fais une requête qui séléctionne les clients à partir de leurs nom, j'aimerais que ça affiche le nom du client demander par l'utilisateur et y a associer un bouton ou un lien fidelité qui me permettra de faire le calcul des ses avantages fidelités. Le problème, c'est que si deux clients ont le même nom, il faudrait que l'utilisateur puisse choisir le client. L'idéal serait qu'il y ait des boutons(ou liens) à côté de chaque client pour que l'utilisateur puisse choisir le bon client. Ou sinon un click sur le bon client qui envoie vers la page pour calculer son avantage fidelité.

J'étais en train de regarder pour une listView mais cela paraît ... compliqué ^^'
Pour toi, quel serait la meilleure solution? :)
0
Pepito39 Messages postés 91 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 21 mars 2014 1
31 mai 2013 à 15:56
En y repensant, juste un click sur le nom du client qui envoie vers une activité pour faire les calculs serait bien, comme ça, s'il y en a un, c'est bon, et s'il y en a 2, l'utilisateur a la possibilité de choisir et ça parait moins compliqué que d'y associer un bouton à chaque client :)
0
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
31 mai 2013 à 17:25
La ListView semble pertinante :

Je te propose une Edittext en haut de l'interface graphique avec un bouton recherche.

Le client vient saisir son nom sur l'edit text et valide avec le bouton, par la suite on peut ajouter la complémention sur les nom client.

une fois le bouton client appuyé, tous les clients avec le même nom apparaisse dans une ListView. (on peut faire apparaitre le nom + le prénom et d'autres informations .. )

Le client a alors la possibilité de choisir le profil qui lui correspond.

Sur le clique de la ListView on lance une nouvelle activity avec le détail de la fiche client.

C'est assez facile à faire (environ 1H voir moins pour ceux qui connaisse bien et ca permet de toucher un peu à tout au niveau programmation donc pas mal)
0
Pepito39 Messages postés 91 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 21 mars 2014 1
31 mai 2013 à 17:31
D'accord, je vais tenter la ListView alors ^^
Pour l'EditText, je le récupère déjà de l'activité précédente de cette manière
public class AffichageClientActivity extends MainActivity{
	clientBDD cliBDD= new clientBDD(this);
	protected void onCreate(Bundle saveInstanceBundle){
		super.onCreate(saveInstanceBundle);
		
		//récupération de la valeur de l'EditText
		Bundle objetbundle= this.getIntent().getExtras();
		String nomclient=objetbundle.getString("nomclient");
		
		cliBDD.open();
		cliBDD.getClientwithNom(nomclient);
		if (cliBDD != null){
			//affichage du ou des client(s)
			
			
		}
		else
		{
			Toast.makeText(this, "Ce client n'est pas enregistré dans la base, vérifier l'orthographe ou bien ajouter un nouveau client.", Toast.LENGTH_LONG).show();
		}
		}


Donc, c'est parti pour une heure voire un peu plus, parce que je ne connais pas du tout la ListView mais j'ai trouvé un tuto plutôt sympa :)
Merci bien :)
0
Pepito39 Messages postés 91 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 21 mars 2014 1
31 mai 2013 à 18:08
Par contre, je vois pas comment stocker les lignes de la requête dans un tableau..
0