souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015
-
Modifié par BunoCS le 16/03/2015 à 11:22
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015
-
22 mars 2015 à 10:30
Bonjour,
j'arrive a ajouter mes données a partir du spinner dans l base de données et j'arrive aussi a recuperer , les données specifiques a un produit grace a son "code" , vers le spinner.
mais maintenant, j'ai un autre souci qui est:
je veux faire defiler la liste des produits que j'ai enregistrer avec un 4 boutons (bouton 1 : pour m'afficher le premier enregistrement
bouton 2 : pour m'afficher le dernier enregistrement
bouton 3 et bouton 4: pour m'afficher les enregistrement apré le premier et avant le dernier enregistrement).... j'arrive a le faire avec les editText mais pas avec le spinner!
voici mes 4méthodes : pour aller vers le premier,dernier, précédent et suivant enregistrement dans la table produit :
public void premierProduit(View view){
MaBaseSQLiteOpenHelper bdd = new MaBaseSQLiteOpenHelper(this,"factBDD", null, 1);
SQLiteDatabase bd = bdd.getWritableDatabase();
c = bd.rawQuery("select * from Produits order by code asc ", null);
if (c.moveToFirst()) {
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
}
else
Toast.makeText(this, "Aucun enregistrement effectué" ,Toast.LENGTH_SHORT).show();
bd.close();
}
public void precedentProduit(View view){
try {
if (!c.isFirst()) {
c.moveToPrevious();
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
} else
Toast.makeText(this, "Début de la liste",Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
je ne sais pas comment ajouter l'appel pour mon spinner!!
merci
public void suivantProduit(View view){
try {
if (!c.isLast()) {
c.moveToNext();
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
} else
Toast.makeText(this, "Fin de la liste",Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
public void dernierProduit(View view){
MaBaseSQLiteOpenHelper bdd = new MaBaseSQLiteOpenHelper(this,"factBDD", null, 1);
SQLiteDatabase bd = bdd.getWritableDatabase();
c = bd.rawQuery("select * from Produits order by code asc ", null);
if (c.moveToLast()) {
edit1.setText(c.getString(0));
edit2.setText(c.getString(1));
edit3.setText(c.getString(2));
} else
Toast.makeText(this, "Aucun enregistrement effectué" ,Toast.LENGTH_SHORT).show();
bd.close();
}
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 16 mars 2015 à 11:41
ce que je veux faire c'est quand je clique sur mon bouton1 par exemple pour afficher le dernier enregistrement effectué, je voudrais qu'il me récupére tous les champs saisis dans les editText et dans le spinner..
Ceux des editText je les récupére normalement mais la donnée dans le spinner, je ne sais ps comment l'afficher dans ce dernier!
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 16 mars 2015 à 12:06
dans mon interface, j'ai 3 editText (code, designation, prix) et 1 spinner (famille produit)
code, designation, prix et famille produit sont des champs de l table "produit".
famille produit est une foreign key et est egale à : code famille
puisque j'ai une autre table "famille-prod" qui contient les champs (code famille, nomFamille)
dc dans mon interface graphique, l'ajout et la récupération des données de la base se font sans probléme (la récupération, je la fais par "code").
maintenant, j'ai 4 bouttons que je veux utiliser pour afficher le premier, dernier, précédent avant le dernier, suivant après le premier enregistrement effectué dans l table "produit".
qd je clique sur ces boutons, ils m'affichent toutes les données que j'ai enregistrées dans la table "produit" sans problème mais seulement celles que j'ai fait entrer en editText(cad, code, designation,prix) mis pas celle du spinner (parce que je ne sais pas comment l'afficher!)!
j'espére que je suis assez claire!
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
ce n'est pas que ça ne me convienne pas, c'est que je ne sais pas où la mettre ton instruction!
il y a 4 methodes
premierproduit (pour afficher le premier produit que j'ai enregistré dans la table en BDD)
dernierproduit(pour afficher le dernier produit que j'ai enregistré dans la table en BDD)
precedentproduit et suivantproduit pour afficher les données qui se trouve entre le premier et le dernier enregistrement dans la base de données)
ces 4 méthodes sont liées à 4 bouttons pour effectuer ces opérations .
(je ne sais pas comment faire pour afficher la données que j'ai enregistrée dans les 2spinner!! pour les editText yapa de souci!)
voici mon code (j'ai ajouter un autre spinner pour 'modele produit')
Cursor c = bd.rawQuery("select * from Famille", null);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, c,
new String[] { "dFam" }, new int[] { android.R.id.text1 });
// set layout for activated adapter
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Cursor c1 = bd.rawQuery("select * from Modele", null);
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, c1,
new String[] { "dMod" }, new int[] { android.R.id.text1 });
// set layout for activated adapter
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Toast.makeText(this, "Le produit " + designation + " a été ajouté à la liste", Toast.LENGTH_SHORT).show();
}
else
{
bd.close();
Toast.makeText(this, "Le produit " + designation + " existe déjà", Toast.LENGTH_SHORT).show();
}
}
if (cant == 1)
Toast.makeText(this, "Le produit a été supprimé de la liste",Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "Le produit n'existe pas",Toast.LENGTH_SHORT).show();
}
public void onResetProduit(View view){
edit1.setText("");
edit2.setText("");
edit3.setText("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_produits, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
ce n'est pas que ça ne me convienne pas, c'est que je ne sais pas où la mettre ton instruction!
Bah, moi non plus, étant donné que je ne comprends pas ce que tu veux faire... On fait comment du coup?
;)
Pourquoi ne pas le mettre là où tu modifies tes EditTexts?
Ah, et essaies de faire un effort sur l'utilisation des balises code, s'il te plait... Plus d'infos ici @+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, provide for a delay...
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 18 mars 2015 à 14:09
je vais essayer d'expliquer encore plus avec un exemple:
mes données des tables sont
ma table famille contient 2 famille:
famille1(code=1,nomFam=fam1)
famille2(code=2,nomFam=fam2)
ma table modele contient 3 modele:
modele1(code=1,nomMod=mod1)
modele2(code=2,nomMod=mod2)
modele3(code=3,nomMod=mod3)
ma table produit contient 3 produits:
produit1 (code=1,designation=prod1,prix=10.20,famille=1,modele=3)
produit2 (code=2,designation=prod2,prix=23.25,famille=2,modele=3)
produit3 (code=3,designation=prod3,prix=14.15,famille=2,modele=2)
où: dans le produit1 famille=1(code de fam1 dans la table famille),modele =3(mod3 dans la table modele)
mon interface est comme ceci:
code: <<<editText1>>>
designation: <<<editText2>>>
prix: <<<editText3>>>
famille:<<<spinner1>>>
modele:<<<spinner2>>>
je vais commencer dans cet ordre par exemple:
quand j'appuie sur le bouton "premierproduit" qui est lié a la méthode 'premierproduit' je dois avoir dans mon interface qui m'affiche :
code:1
designation: prod1
prix: 10.20
famille: fam1
modele: mod3
quand j'appuie sur le bouton "suivantproduit" qui est lié a la méthode 'suivantproduit' je dois avoir dans mon interface :
code:2
designation: prod2
prix: 23.25
famille: fam2
modele: mod3
quand j'appuie sur le bouton "precedentproduit" qui est lié a la méthode 'precedentproduit' je dois avoir dans mon interface :
code:3
designation: prod3
prix: 14.15
famille: fam2
modele: mod2
et quand j'appuie sur le bouton "dernierproduit" qui est lié a la méthode 'dernierproduit' je dois avoir dans mon interface qui m'affiche:
code:3
designation: prod3
prix: 14.15
famille: fam2
modele: mod2
pour les editText je n'ai pas de souci concernant l'affichage des données mais pour les spinners je ne sais pas comment faire!
voila, j'espére que c'est plus clair, parce que j'ai vraiment besoin d'aide!
merci
BunoCS
Messages postés15371Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 2 juin 2023102 18 mars 2015 à 14:36
Ton exemple est faux...ou bien tes méthodes sont mal nommées.
Peu importe... Tu veux changer les données de ton interface dans les méthodes xxxProduit(). ok. Tu le fais bien pour les EditText, il me semble donc qu'il faut le faire aussi pour les Spinner. As tu essayé la méthode
setSelection()
?
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 18 mars 2015 à 15:10
pour utiliser cette méthode je dois utiliser setSelection(position); et position, je ne sais pas comment le définir dans mon cas!!
BunoCS
Messages postés15371Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 2 juin 2023102 18 mars 2015 à 15:29
aah....c'est ça qui te bloque?
Si tu fais un getSelectedItemPosition() pour récupérer la position courante et tu fais un +/- 1 pour suivant/précédent. Pour premier, c'est 0 et pour dernier, c'est "size-1" (à adapter à tes structures)
souadkhel
Messages postés19Date d'inscriptionjeudi 12 mars 2015StatutMembreDernière intervention 8 juillet 2015 18 mars 2015 à 15:40
est ce que tu pourrais me donner un bout de code que je pourrais utiliser?? parce que la je desespére completement!!