Naar content
Trending apps
  • Inbox by Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger

  • Facebook

Trending games
  • Minecraft Earth

  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

  • The Elder Scrolls: Blades

Trending smartphones
  • Realme X2 Pro

  • Moto G8 Plus

  • Microsoft Surface Duo

  • OnePlus 7T Pro

  • Nokia 7.2

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

Wim81

Wim81

  • Lid sinds 26 oktober 2015
  • Berichten 37
  • Reputatie 0
  • #1
  • 22 november 2015
  • 00:40

Dag Iedereen,

in mijn Barcode scanner hou ik het aantal producten bij die ik gescand heb.

Dus als ik 3 blikjes cola inscan, moet het aantal op 3 komen in de databank.

Cola blikjes hebben allemaal dezelfde barcode.

Nu bij de eerste scan zet ik het aantal op 1.
Daarna moet ik de informatie over het product vervolledigen via een formuliertje dat je invult en daarna als update naar de db stuurt.

In dat formulier wordt de barcode nummer en het aantal (dat op 1 staat van het scannen) al ingevuld in twee velden.

Als ik de andere velden invul en ik druk op verzenden dan probeer ik hetvolgende te doen.

1. ik haal het aantal van de barcode op. (zet ik in numberdb)
2. ik zet het gescande nummer van aantal in numberscan.

De twee nummers moet ik naar integer parsen.
Dan de berekening doen totnumber = numberdb + numberscan;
Daarna moet ik de totnumber als integer parsen naar String en daarna in de update methode toevoegen.

Telkens als ik een string naar integer wil parsen krijg ik de volgende error:

Caused by: java.lang.NumberFormatException: Invalid int: "1

Hoe komt dit?
Werkt parsen naar Integer niet in Android en zo nee, wat werkt wel?
Of moet ik gewoon het veld aantal in de db op het type Integer zetten?

Groetjes
Wim

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2338
  • Reputatie 20
  • #2
  • 22 november 2015
  • 20:16

Als het goed is, kun je in de buurt van je foutmelding zien in welke regel het gebeurt.
Wat ik doe, dat is een System.out.println("============"+ variabele ); plaatsen voor de foutregel.
Zo kan ik zien welke waarde de variabele heeft voordat de app crasht.
Je kunt uiteraard ook meer variabelen invullen System.out.println("============"+ variabele1 + " - " + variabele2 );
Soms gebruik ik ook de length() functie, want 1 kan ook 1 zijn. (een 1 met een spatie!)
Misschien helpt dit om je op weg te helpen.

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2338
  • Reputatie 20
  • #3
  • 22 november 2015
  • 20:21

Gebruik je wel deze code ?
Integer.parseInt("1234");
Stel a = 1;
dan moet je Integer.parseInt(a); gebruiken ZONDER de "" !!

Bewerkt (22 november 2015 20:22)

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Wim81

Wim81

  • Lid sinds 26 oktober 2015
  • Berichten 37
  • Reputatie 0
  • #4
  • 23 november 2015
  • 16:12

Ik gebruik inderdaad een variabele en zonder d quotes.

redbulletnl

redbulletnl

  • Lid sinds 02 september 2011
  • Berichten 2991
  • Reputatie 60
  • #5
  • 23 november 2015
  • 16:51

Gebruik eens een try catch

try {
Integer.parseInt("");
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Wim81

Wim81

  • Lid sinds 26 oktober 2015
  • Berichten 37
  • Reputatie 0
  • #6
  • 23 november 2015
  • 17:09

Het is misschien handiger als ik de error en de code eens vermeld.


Dit is de vollerdige error code die ik krijg:

11-23 17:04:23.537 17830-17830/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: be.wimvangeyt.barcies, PID: 17830
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3954)
at android.view.View.performClick(View.java:4569)
at android.view.View$PerformClick.run(View.java:18570)
at android.os.Handler.handleCallback(Handler.java:743)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5212)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.view.View$1.onClick(View.java:3949)
at android.view.View.performClick(View.java:4569) 
at android.view.View$PerformClick.run(View.java:18570) 
at android.os.Handler.handleCallback(Handler.java:743) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5212) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NumberFormatException: Invalid int: "1
"
at java.lang.Integer.invalidInt(Integer.java:137)
at java.lang.Integer.parse(Integer.java:374)
at java.lang.Integer.parseInt(Integer.java:365)
at java.lang.Integer.parseInt(Integer.java:331)
at be.wimvangeyt.barcies.Barcies_scanproduct.send_data(Barcies_scanproduct.java:87)
… 14 more
Ook zal ik hier de methode eens zetten waarin ik het optellen doe:
public void send_data(View view) { barciesHelper = new BarciesDatabaseAdapter(this); EditText nameTxt = (EditText) findViewById(R.id.nameETxt); EditText brandTxt = (EditText) findViewById(R.id.brandETxt); EditText codeNr = (EditText) findViewById(R.id.codenrETxt); EditText number = (EditText) findViewById(R.id.numberETxt); String name = nameTxt.getText().toString(); String brand = brandTxt.getText().toString(); String codenr = codeNr.getText().toString(); int prodNumber =1; String nummber = barciesHelper.getProdNumber(); int numScan = Integer.parseInt(nummber); int numCalc = numScan + prodNumber; String productNumber = Integer.toString(numCalc); long id = barciesHelper.updateData(codenr, name, brand ,productNumber); if(id <0) { Message.message(this, "The insert is successful!"); }else { Message.message(this, "The insert is unsuccessful!"); } }

Bewerkt (23 november 2015 20:52)
Wim81

Wim81

  • Lid sinds 26 oktober 2015
  • Berichten 37
  • Reputatie 0
  • #7
  • 23 november 2015
  • 17:16

Die Try catch daardoor doet hij niets meer. Geeft ook geen error.

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2338
  • Reputatie 20
  • #8
  • 23 november 2015
  • 18:26

Probeer eens
int numScan = Integer.parseInt(barciesHelper.getProdNumber());

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2338
  • Reputatie 20
  • #9
  • 23 november 2015
  • 18:29

Wat ook helpt:
Maak een nieuwe app aan en zet alleen dat stukje waar het fout gaat er in.
(met de nodige waarden en variabelen uiteraard).
Geef met textview de waarde ervoor en erna weer.
Als dat wel goed gaat, dan weet je dat het niet aan dat stukje code ligt.

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Wim81

Wim81

  • Lid sinds 26 oktober 2015
  • Berichten 37
  • Reputatie 0
  • #10
  • 23 november 2015
  • 18:35

Ik krijg dezelfde error.

Wim

Reageer

Om te reageren, dien je te zijn ingelogd. Druk op de onderstaande knop om in te loggen of maak een nieuwe account aan.

Inloggen Registreren