2011-07-26 3 views
0

Voici mon code d'origine:la force Integer.parseInt ferme mon application android pour fermer

final EditText t1 = (EditText)findViewById(R.id.editText1); 
int a = Integer.parseInt(t1.getText().toString()); 

Maintenant, avec ce code que je reçois la force de fermeture quand je cours sur l'émulateur.

donc je serperated à ce

String s = t1.getText().toString(); 

Tout se passe correctement, mais quand je change à:

String s = t1.getText().toString(); 
int a = Integer.parseInt(s); 

Ensuite, la force se ferme à nouveau.

modifier:

J'ai eu le code dans un bouton clic d'écoute comme ceci:

button.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      int a = 0; 
      int b = 0; 
      try 
      { 
       a = Integer.parseInt(t1.getText().toString()); 
       b = Integer.parseInt(t2.getText().toString()); 
      } 
      catch(NumberFormatException e) 
      { 
       alert.show(); 
      } 


     } 
    }); 

Mais quand je l'ai sorti, il ne se coince l'exception correctement. Donnez-moi une minute et mal obtenir le logcat.

07-26 07:54:14.360: ERROR/AndroidRuntime(711): FATAL EXCEPTION: main 
07-26 07:54:14.360: ERROR/AndroidRuntime(711): android.content.res.Resources$NotFoundException: String resource ID #0x7 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.content.res.Resources.getText(Resources.java:201) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.widget.TextView.setText(TextView.java:2857) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at com.testing.test2.Test2Activity$1.onClick(Test2Activity.java:47) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.view.View.performClick(View.java:2485) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.view.View$PerformClick.run(View.java:9080) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.os.Handler.handleCallback(Handler.java:587) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.os.Handler.dispatchMessage(Handler.java:92) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.os.Looper.loop(Looper.java:123) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at java.lang.reflect.Method.invoke(Method.java:507) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
07-26 07:54:14.360: ERROR/AndroidRuntime(711):  at dalvik.system.NativeStart.main(Native Method) 
07-26 07:54:14.430: WARN/ActivityManager(68): Force finishing activity com.testing.test2/.Test2Activity 
07-26 07:54:14.940: WARN/ActivityManager(68): Activity pause timeout for HistoryRecord{405e8368 com.testing.test2/.Test2Activity} 
07-26 07:54:16.349: INFO/Process(711): Sending signal. PID: 711 SIG: 9 
07-26 07:54:16.389: INFO/ActivityManager(68): Process com.testing.test2 (pid 711) has died. 
07-26 07:54:16.399: INFO/WindowManager(68): WIN DEATH: Window{407013e0 com.testing.test2/com.testing.test2.Test2Activity paused=false} 
07-26 07:54:16.689: WARN/InputManagerService(68): Got RemoteException sending setActive(false) notification to pid 711 uid 10035 
07-26 07:54:21.599: DEBUG/dalvikvm(258): GC_EXPLICIT freed 6K, 54% free 2597K/5639K, external 410K/517K, paused 76ms 
07-26 07:54:26.650: DEBUG/dalvikvm(303): GC_EXPLICIT freed 6K, 54% free 2544K/5511K, external 410K/517K, paused 100ms 
07-26 07:54:31.640: DEBUG/dalvikvm(315): GC_EXPLICIT freed 1K, 54% free 2538K/5511K, external 410K/517K, paused 72ms 
+3

Avez-vous essayé d'intercepter l'exception NumberFormatException? – Jacob

+0

Oui, j'ai essayé de mettre dans un essai ... attraper déclaration qui attrape cette même exception et ouvre une fenêtre d'alerte, mais cela ne se produit pas, il jette juste la force – bavman

+1

pouvez-vous afficher le message logcat –

Répondre

-1

vous devez donner seulement le nombre de plage entier, NumberFormatException viendra des caractères ou des caractères spéciaux,

+0

l'essayer et donner votre avis – Abhi

+0

Oui j'ai utilisé des nombres simples pour tester avec comme 5, 4, etc. – bavman

+0

d'où vous avez t2? d'abord initialiser t2 comme t1 – Abhi

1

Cela signifie que l'utilisateur n'a pas de chiffres dans le champ de texte. Mais ce n'est pas l'erreur que vous affichez dans la trace de la pile. Cela indique que vous avez une discordance entre votre dernier fichier R.java généré et le code qui référence les ID de ressource. Recompilez complètement votre application pour la réparer.

0

Vérifiez le fichier xml si vous entrez correctement id EditText comme editText1

1

La raison pour laquelle ça devient la force fermée:

android.content.res.Resources$NotFoundException: String resource ID #0x7 dans votre journal dit que vous avez une ressource String inconnue ...

s'il vous plaît vérifier votre fichier string.xml dans le dossier values.

+0

la seule chaîne que j'ai dans mon fichier string.xml est « app_name » et je ne pense pas que theres quelque chose de mal avec elle Test2 bavman

+0

Nettoyer et construire votre projet .. Si vous utilisez eclipse alors allez: Projet -> Nettoyer .... –

Questions connexes