Aller au contenu

[AIDE]String to Int


TecKnologikS

Recommended Posts

voila, je me retrouve dans ma base sql avec une sortie en String...

donc j'ai chercher une solution pour faire "variable++"

donc j'ai trouver ceci:

String monString = db.recupererString();
     int monInt = Integer.parseInt(monString); 

mais ça bloque l'application... voici le logcat ou j'y comprend rien =)

10-28 16:50:11.675: ERROR/AndroidRuntime(5344): FATAL EXCEPTION: main
10-28 16:50:11.675: ERROR/AndroidRuntime(5344): java.lang.NumberFormatException: unable to parse 'codebarre' as integer
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at java.lang.Integer.parse(Integer.java:433)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at java.lang.Integer.parseInt(Integer.java:422)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at java.lang.Integer.parseInt(Integer.java:382)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at com.formation.sql.Main$2.onClick(Main.java:391)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at android.view.View.performClick(View.java:2408)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at android.view.View$PerformClick.run(View.java:8817)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at android.os.Handler.handleCallback(Handler.java:587)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at android.os.Looper.loop(Looper.java:144)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at android.app.ActivityThread.main(ActivityThread.java:4937)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at java.lang.reflect.Method.invokeNative(Native Method)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at java.lang.reflect.Method.invoke(Method.java:521)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-28 16:50:11.675: ERROR/AndroidRuntime(5344):     at dalvik.system.NativeStart.main(Native Method)

merci de votre aide

Lien vers le commentaire
Partager sur d’autres sites

Le message qui compte est à mon avis celui là :

"unable to parse 'codebarre' as int"

Si je comprend bien, il arrive pas à transformer "codebarre" en int...sans blague ^^

A mon avis, tu lui file le nom de ta variable au lieu de son contenu ;)

Lien vers le commentaire
Partager sur d’autres sites

Il n'y a pas assez de code pour t'aider.

Première chose à faire, regarder dans la bdd si c'est bien un nombre dans la base ou pas

Ensuite, si c'est bien un nombre, ton blème se trouve probablement dans ta fonction "db.recupererString()"

qui te revoit le nom d'une colone au lieu du contenu ou un truc du genre...

Lien vers le commentaire
Partager sur d’autres sites

code de barbare.... il faut reduire le premier onclick listener et c'est beaucoup mieu !

main

package com.formation.sql;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class Main extends ListActivity implements OnClickListener {
   /** Called when the activity is first created. */

   DBAdapter db;
   private Button reload;
   private EditText editText;
   private Button button;
   private String hello;
   int nombre;
   private String verbeq;
   private String verbe;
   private String verbep;
   private String verbepp;
   int reponsesuite;
   //int reponseb;
   //int reponsef;


   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       getListView().setOnCreateContextMenuListener(this);
       reload = (Button) findViewById(R.id.refresh);
       ((TextView)findViewById(R.id.verbe)).setText("appuyer sur Nouveau Verbe");                    


       reload.setOnClickListener(
               //choix du nb aleatoire et pointer verbe eh ouai a la bonne vieille methode if et else if... j'arrive pas le sqlite
               new OnClickListener() {
               public void onClick(View v) {
                   // nombre aléatoire
                   nombre = (int) (Math.random() * 62 + 1);
                   if (nombre == 1){
                       verbeq = "parier";
                       verbe = "bet";
                       verbep = "bet";
                       verbepp = "bet";
                   } else if (nombre == 2){
                       verbeq = "éclater";
                       verbe = "burst";
                       verbep = "burst";
                       verbepp = "burst";
                   } else if (nombre == 3){
                       verbeq = "coûter";
                       verbe = "cost";
                       verbep = "cost";
                       verbepp = "cost";
                   } else if (nombre == 4){
                       verbeq = "couper";
                       verbe = "cut";
                       verbep = "cut";
                       verbepp = "cut";
                   } else if (nombre == 5){
                       verbeq = "frapper/atteindre";
                       verbe = "hit";
                       verbep = "hit";
                       verbepp = "hit";
                   } else if (nombre == 6){
                       verbeq = "blesser";
                       verbe = "hurt";
                       verbep = "hurt";
                       verbepp = "hurt";
                   } else if (nombre == 7){
                       verbeq = "permettre/louer";
                       verbe = "let";
                       verbep = "let";
                       verbepp = "let";
                   } else if (nombre == 8){
                       verbeq = "mettre/poser";
                       verbe = "put";
                       verbep = "put";
                       verbepp = "put";
                   }else if (nombre == 9){
                       verbeq = "lire";
                       verbe = "read";
                       verbep = "read";
                       verbepp = "read";
                   } else if (nombre == 10){
                       verbeq = "fixer";
                       verbe = "set";
                       verbep = "set";
                       verbepp = "set";
                   } else if (nombre == 11){
                       verbeq = "fermer";
                       verbe = "shut";
                       verbep = "shut";
                       verbepp = "shut";
                   } else if (nombre == 12){
                       verbeq = "fendre";
                       verbe = "split";
                       verbep = "split";
                       verbepp = "split";
                   } else if (nombre == 13){
                       verbeq = "répandre/étaler";
                       verbe = "spread";
                       verbep = "spread";
                       verbepp = "spread";
                   } else if (nombre == 14){
                       verbeq = "bouleverser";
                       verbe = "upset";
                       verbe = "upset";
                       verbepp = "upset";
                   } else if (nombre == 15){
                       verbeq = "(se) courber";
                       verbe = "bend";
                       verbep = "bent";
                       verbepp = "bent";
                   } else if (nombre == 16){
                       verbeq = "lier/relier";
                       verbe = "bind";
                       verbep = "bound";
                       verbepp = "bound";
                      } else if (nombre == 17){
                          verbeq = "saigner";
                          verbe = "bleed";
                          verbep = "bled";
                          verbepp = "bled";
                      } else if (nombre == 18){
                          verbeq = "élever (bétail)";
                          verbe = "breed";
                          verbep = "bred";
                          verbepp = "bred";
                      } else if (nombre == 18){
                          verbeq = "apporter";
                          verbe = "bring";
                          verbep = "brought";
                          verbepp = "brought";
                      } else if (nombre == 19){
                          verbeq = "construire";
                          verbe = "build";
                          verbep = "built";
                          verbepp = "built";
                      } else if (nombre == 20){
                          verbeq = "bruler";
                          verbe = "burn";
                          verbep = "burnt";
                          verbepp = "burnt";
                      } else if (nombre == 21){
                          verbeq = "acheter";
                          verbe = "buy";
                          verbep = "bought";
                          verbepp = "bought";
                      } else if (nombre == 22){
                          verbeq = "attraper";
                          verbe = "catch";
                          verbep = "caught";
                          verbepp = "caught";
                      } else if (nombre == 23){
                          verbeq = "s'accrocher";
                          verbe = "cling";
                          verbep = "clung";
                          verbepp = "clung";
                      } else if (nombre == 24){
                          verbeq = "ramper";
                          verbe = "creep";
                          verbep = "crept";
                          verbepp = "crept";
                      } else if (nombre == 25){
                          verbeq = "distribuer";
                          verbe = "deal";
                          verbep = "dealt";
                          verbepp = "dealt";
                      } else if (nombre == 26){
                          verbeq = "creuser";
                          verbe = "dig";
                          verbep = "dug";
                          verbepp = "dug";
                      } else if (nombre == 27){
                          verbeq = "rever";
                          verbe = "dream";
                          verbep = "dreamt";
                          verbepp = "dreamt";
                      } else if (nombre == 28){
                          verbeq = "(se) nourrir";
                          verbe = "feed";
                          verbep = "fed";
                          verbepp = "fed";
                      } else if (nombre == 29){
                          verbeq = "(se) sentir/éprouver";
                          verbe = "feel";
                          verbep = "felt";
                          verbepp = "felt";
                      } else if (nombre == 30){
                          verbeq = "se battre/combattre";
                          verbe = "fight";
                          verbep = "fought";
                          verbepp = "fought";
                      } else if (nombre == 31){
                          verbeq = "trouver";
                          verbe = "find";
                          verbep = "found";
                          verbepp = "found";
                      } else if (nombre == 32){
                          verbeq = "s'enfuir";
                          verbe = "flee";
                          verbep = "fled";
                          verbepp = "fled"; 
                      } else if (nombre == 33){
                          verbeq = "obtenir";
                          verbe = "get";
                          verbep = "got";
                          verbepp = "got";
                      } else if (nombre == 34){
                          verbeq = "prendre/accrocher";
                          verbe = "hang";
                          verbep = "hung";
                          verbepp = "hung";
                      } else if (nombre == 35){
                          verbeq = "avoir";
                          verbe = "have";
                          verbep = "had";
                          verbepp = "had";
                      } else if (nombre == 36){
                          verbeq = "entendre";
                          verbe = "hear";
                          verbep = "heard";
                          verbepp = "heard";
                      } else if (nombre == 37){
                          verbeq = "tenir";
                          verbe = "hold";
                          verbep = "held";
                          verbepp = "held";
                      } else if (nombre ==38){
                          verbeq = "garder";
                          verbe = "keep";
                          verbep = "kept";
                          verbepp = "kept";
                      } else if (nombre == 39){
                          verbeq = "s'agenouiller";
                          verbe = "kneel";
                          verbep = "knelt";
                          verbepp = "knelt";
                      } else if (nombre == 40){
                          verbeq = "poser a plat";
                          verbe = "lay";
                          verbep = "laid";
                          verbepp = "laid";
                      } else if (nombre == 41){
                          verbeq = "mener/guider";
                          verbe = "lead";
                          verbep = "led";
                          verbepp = "led";
                      } else if (nombre == 42){
                          verbeq = "s'appuyer";
                          verbe = "lean";
                          verbep = "leant";
                          verbepp = "leant";
                      } else if (nombre == 43){
                          verbeq = "sauter";
                          verbe = "leap";
                          verbep = "leapt";
                          verbepp = "leapt";
                      } else if (nombre == 44){
                          verbeq = "apprendre";
                          verbe = "learn";
                          verbep = "learnt";
                          verbepp = "learnt";
                      } else if (nombre == 45){
                          verbeq = "laisser/quitter";
                          verbe = "leave";
                          verbep = "left";
                          verbepp = "left";
                      } else if (nombre == 46){
                          verbeq = "prêter";
                          verbe = "lend";
                          verbep = "lent";
                          verbepp = "lent";
                      } else if (nombre == 47){
                          verbeq = "allumer";
                          verbe = "light";
                          verbep = "lit";
                          verbepp = "lit";
                      } else if (nombre == 48){
                          verbeq = "perdre";
                          verbe = "lose";
                          verbep = "lost";
                          verbepp = "lost";
                      } else if (nombre == 49){
                          verbeq = "faire/fabriquer";
                          verbe = "make";
                          verbep = "made";
                          verbepp = "made";
                      } else if (nombre == 50){
                          verbeq = "signifier/vouloir dire";
                          verbe = "mean";
                          verbep = "meant";
                          verbepp = "meant";
                      } else if (nombre == 51){
                          verbeq = "(se) rencontrer";
                          verbe = "meet";
                          verbep = "met";
                          verbepp = "met";
                      } else if (nombre == 52){
                          verbeq = "payer";
                          verbe = "pay";
                          verbep = "paid";
                          verbepp = "paid";
                      } else if (nombre == 53){
                          verbeq = "dire";
                          verbe = "say";
                          verbep = "said";
                          verbepp = "said";
                      } else if (nombre == 54){
                          verbeq = "(re)chercher";
                          verbe = "seek";
                          verbep = "sought";
                          verbepp = "sought";
                      } else if (nombre == 55){
                          verbeq = "vendre";
                          verbe = "sell";
                          verbep = "sold";
                          verbepp = "sold";
                      } else if (nombre == 56){
                          verbeq = "envoyer";
                          verbe = "send";
                          verbep = "sent";
                          verbepp = "sent";
                      } else if (nombre == 57){
                          verbeq = "(faire) briller";
                          verbe = "shine";
                          verbep = "shone";
                          verbepp = "shone";
                      } else if (nombre == 58){
                          verbeq = "tirer/prendre une photo";
                          verbe = "shoot";
                          verbep = "shot";
                          verbepp = "shot";
                      } else if (nombre == 59){
                          verbeq = "etre assis";
                          verbe = "sit";
                          verbep = "sat";
                          verbepp = "sat";
                      } else if (nombre == 60){
                          verbeq = "dormir";
                          verbe = "sleep";
                          verbep = "slept";
                          verbepp = "slept";
                      } else if (nombre == 61){
                          verbeq = "glisser";
                          verbe = "slide";
                          verbep = "slid";
                          verbepp = "slid";
                      } else if (nombre == 62){
                          verbeq = "sentir (odorat)";
                          verbe = "smell";
                          verbep = "smelt";
                          verbepp = "smelt";
                      } else if (nombre == 63){
                          //bientot la fin
                      }
                   // affichage du verbe a traduire
               ((TextView)findViewById(R.id.verbe)).setText("Verbe en francais: " + verbeq);                    
                 }
               }
               );    

       db = new DBAdapter(this);
       db.open();
       DataBind();
     //récupération de l'EditText grâce à son ID
       editText = (EditText) findViewById(R.id.question);

       //récupération du bouton grâce à son ID
       button = (Button) findViewById(R.id.Button);

     //on applique un écouteur d'évenement au clique sur le bouton
       button.setOnClickListener(
           new OnClickListener() {
           @Override

           public void onClick(View v) {
               //on réupère le texte écrit dans l'EditText
               hello = editText.getText().toString();
               String reponsebi = db.recuperereponseb();
               int reponseb = Integer.parseInt(reponsebi); 
               String reponsefi = db.recuperereponsef();
               int reponsef = Integer.parseInt(reponsefi); 
               //*/

                 if (hello.equals(verbe)){
                     Toast.makeText(Main.this,    "Bonne réponse ! :)", Toast.LENGTH_LONG).show();
                     reponseb++;
                     reponsesuite++;
                     db.UpdateProduit(""+reponseb, ""+reponsef, ""+reponsesuite);
                       DataBind();

                 } else {
                     reponsef++;
                     reponsesuite = 0;
                     db.UpdateProduit(""+reponseb, ""+reponsef, ""+reponsesuite);
                       DataBind();

                     AlertDialog.Builder adb = new AlertDialog.Builder(Main.this);
                       //on attribut un titre à notre boite de dialogue
                       adb.setTitle("Conjugaison du verbe " + "\n\r" + verbeq);
                       //on insère un message à notre boite de dialogue, et ici on affiche le titre de l'item cliqué
                       adb.setMessage(" Base verbale: " + verbe + "\n\r" + "Prétérit: " + verbep + "\n\r" + "Participe passé: " + verbepp);

                       //on indique que l'on veut le bouton ok à notre boite de dialogue
                       adb.setPositiveButton("Ok, merci", null);
                       //on affiche la boite de dialogue
                       adb.show();
                  }
                 }
           }

       );
   }

   @Override // Création du menu principal
   public boolean onCreateOptionsMenu(Menu menu) {        
       menu.add(0,100,0,"Creer");
       menu.add(0,200,0,"suppr");
       return true;
   }

   @Override // Selection d'un item du menu
   public boolean onOptionsItemSelected(MenuItem item) {
       switch(item.getItemId()){
       case 100: 
           db.insererUnProduit("", "", "info");
           DataBind();
           break;   
       case 200:
           db.Truncate();
           DataBind();
           break;
       }
       return true;
   }


   @Override
   protected void onDestroy() {
       db.close();
       super.onDestroy();
   }

   public void DataBind(){
       Cursor c = db.recupererLaListeDesProduits();
       startManagingCursor(c);
       SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
       R.layout.list_item,c,new String[]{"codebarre","titre"},
       new int[]{R.id.textTitre,R.id.TextCodeBarre});
       setListAdapter(adapter);
   }

   @Override
   public void onClick(View v) {
       //int testei = Integer.parseInt(test); 
       db.UpdateProduit("", "", "dech");
       DataBind();
   }
} 

dbadapter

package com.formation.sql;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

public class DBAdapter {

   DatabaseHelper    DBHelper;
   Context            context;
   SQLiteDatabase    db;

   public DBAdapter(Context context){
       this.context = context;
       DBHelper = new DatabaseHelper(context);
   }    

   public class DatabaseHelper extends SQLiteOpenHelper{

       Context            context;

       public DatabaseHelper(Context context) {
           super(context, "produits", null, 1);
           this.context = context;
       }

       @Override
       public void onCreate(SQLiteDatabase db) {
           db.execSQL("create table produits (_id integer primary key autoincrement, "
                   + "codebarre text not null, titre text not null, " 
                   + "description text not null" 
                   + ");");            
       }

       @Override
       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
           Toast.makeText(context, "Mise à jour de la Base de données version "+oldVersion+" vers "+newVersion, Toast.LENGTH_SHORT).show();
           db.execSQL("DROP TABLE IF EXISTS produits");
           onCreate(db);
       }

   }

   public DBAdapter open(){
       db = DBHelper.getWritableDatabase();
       return this;
   }

   public void close(){
       db.close();
   }

   public void Truncate(){
       db.execSQL("DELETE FROM produits");
   }

   public long insererUnProduit(String codeBarre, String titre, String description){
       ContentValues values = new ContentValues();
       values.put("codebarre", codeBarre);
       values.put("titre", titre);
       values.put("description", description);
       return db.insert("produits", null, values);
   }

   public int UpdateProduit(String num, String titre, String description){
       ContentValues values = new ContentValues();
       values.put("codebarre", num);
       values.put("titre", titre);
       values.put("description", description);
       return db.update("produits", values, num + " = " +num, null);
   }


   public boolean supprimerProduit(long id){
       return db.delete("produits", "_id="+id, null)>0;
   }

   public String recuperereponseb(){
       return "codebarre";

   }
   public String recuperereponsef(){
       return "titre";
   }

   public Cursor recupererLaListeDesProduits(){
       return db.query("produits", new String[]{
               "_id",
               "codebarre",
               "titre",
               "description"}, null, null, null, null, null);
   }

}

c'est un cadeau empoisonné mais merci beaucoup ! il manque que ça est mon application pourra être lancée, avec un petit lifting

Lien vers le commentaire
Partager sur d’autres sites

C'est quoi cette cochonnerie de if/else?

Pourquoi tu mets pas ça en base vu que tu en as une, ou alors regarde du coté des Enum de switch case.

Sinon comme le dit ta pile d'erreur ligne 391 tu fait

  String reponsebi = db.recuperereponseb();
               int reponseb = Integer.parseInt(reponsebi);

et dans ton adapter tu fait

public String recuperereponseb(){
       return "codebarre";

   }

Il est ou le nombre dans "codebarre" ????? j'ai étais acheter codebarre croissants à la boulangerie ?

Java c'est pas magique, il ne lit pas dans les pensées, il fait juste ce que tu lui dit et la tu lui dit n'importe quoi...

Lien vers le commentaire
Partager sur d’autres sites

VA falloir être plus clair sur ton appli.

Elle fait quoi ?

A quoi te sert la base de donnée ?

C'est quoi le rapport entre des produit / codebarre et verbe irrégulier et hello ?

Pourquoi tu stock tes int sous forme de string dans ta base ? la conversion ne te sers à rien.

De plus la c'est pas un problème de SQL c'est juste que tu veux faire rentre un mot dans un nombre.

Ce qu'il manque à ton programme c'est un peu de logique .

Commence par corriger tout les noms de variables ou de méthode qui ne veulent rien dire et ce sera déjà plus clair.

Explique nous ce que tu veux faire dans ton programme, on est pas devin surtout avec ton code.

Lien vers le commentaire
Partager sur d’autres sites

Hm, ça sent trèèèèès fort le copié-collé mal maîtrisé du code de quelqu'un d'autre.

Ton blème je l'ai compris au premier coup d'oeil, c'est une erreur de débutant et pourtant j'ai jamais codé une ligne de java.

Bref, la meilleure chose que tu as à faire, c'est de t'acheter un bouquin pour apprendre à coder et comprendre ce que tu fais, t'as pas les bases, et sans les bases tu n'arriveras à rien.

Lien vers le commentaire
Partager sur d’autres sites

@sqweez: tout le programme est Made in moi(personne n oserai mettre une cochonnerie pareille sur le web.... sauf le sql...ou j i comprend rien.. le livre devrai arriver demain ou lundi (la poste 4jour...)

Sinon vu que le sql est un copier coller j ai juste mi la variable dans le sql titre = reponseb et code barre = reponsef ... le programme est juste un testeur de nos verbe irrégulier en anglais... simple égal tout c.. pour commencer... sinon la base sql servirai juste a Faure des statistique....

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

int reponseb;
try {
        reponseb = Integer.parseInt(reponsebi);
} catch (Exception e) {
        reponseb = -1;
}

déjà serait pas un luxe pour commencer pour éviter ce genre de problème quand on cast des valeurs

sinon comme les autres ont dit , le problème vient du return "codebarre"; qui retourne une string "codebarre" à la place du contenu de ta variable codeBarre (faire attention au caps par aileurs)

dernier détail , adapte toi vite au système xml pour tes phrases , ça va te poser des souci plus tard si tu les intègrent directement dans le code

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...