#android #android-edittext
#Android #android-edittext
Вопрос:
Мой Java-код и мой xml-код. Пожалуйста, что я делаю не так?
// Get a value from a editText
EditText editTextA = (EditText) findViewById(a_edit_text);
String variableA = editTextA.getText().toString(); //this will get a string
int a =Integer.parseInt(variableA); //this will get a no from the string and casting in integer
Log.v("DiagnosticoActivity", "Number a: " a);
<EditText
android:id="@ id/a_edit_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="Insira a"
android:inputType="number"
android:padding="36dp" />
10-10 11:27:34.916 26195-26195/matheussfdb.dptdedoencas E/AndroidRuntime: FATAL EXCEPTION: main
Process: matheussfdb.dptdedoencas, PID: 26195
java.lang.RuntimeException: Unable to start activity ComponentInfo{matheussfdb.dptdedoencas/matheussfdb.dptdedoencas.DiagnosticoActivity}: java.lang.NumberFormatException: Invalid int: ""
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
at android.app.ActivityThread.access$900(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5527)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
Caused by: java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at matheussfdb.dptdedoencas.DiagnosticoActivity.onCreate(DiagnosticoActivity.java:23)
at android.app.Activity.performCreate(Activity.java:6272)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
at android.app.ActivityThread.access$900(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5527)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
Комментарии:
1. Добавьте сообщение об ошибке
2. ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: matheussfdb.dptdedoencas, PID: 26195 java.lang.RuntimeException: не удается запустить activity ComponentInfo{matheussfdb.dptdedoencas/matheussfdb .
3. пожалуйста, добавьте полную трассировку стека к вашему вопросу, используя команду edit .
4. Йенс, ты можешь мне помочь? Вам нужна дополнительная информация?
5. Два способа: либо проверить наличие пустой строки, либо перехватить исключение. Ваша ошибка «Вызвана: java.lang.NumberFormatException: недопустимый int: «»‘
Ответ №1:
int a = 0;
try {
a = Integer.parseInt(variableA); // will only work on numeric entries
} catch (NumberFormatException e) {
// handle incorrect text entry here
}
// a will be 0 if exception occurred
Йенс ответил на это после моего комментария
Ответ №2:
Спасибо, ребята! Это сработало, код выглядит так, но Log.V не работает, когда я вводю ввод в свой текст edti, как исправить?
// Get a value from a editText
EditText editTextA = (EditText) findViewById(a_edit_text);
String variableA = editTextA.getText().toString(); //this will get a string
int a = 0;
try {
a = Integer.parseInt(variableA); // will only work on numeric entries
} catch (NumberFormatException e) {
// handle incorrect text entry here
} // a will be 0 if exception occurred
Log.v("DiagnosticoActivity", "Number a: " a);
Комментарии:
1. Я хотел бы показать свой ввод в редактируемом тексте в log.v
2. Вы не должны добавлять новый вопрос к своему ответу
3. никогда не используйте блок catch таким образом. Добавьте по крайней мере оператор журнала в catchblock
4. Используйте отладчик, чтобы выяснить, что произошло
5. Вы используете Log.v, и ваш logcat может быть настроен не на отображение всех подробных выходных данных. Вместо этого попробуйте Log.d …