2013-04-24 3 views
-2

Следующая строка, без места, где будет размещена, где будет разбита моя программа для Android.Почему следующая строка разбивает мое приложение для Android?

EditText editText1; 
double pro = Double.parseDouble(editText1.getText().toString()); 

Дополнительный код:

<EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/btsub" 
     android:layout_marginTop="58dp" 
     android:ems="10" 
     android:inputType="number" > 

     <requestFocus /> 
    </EditText> 

Что я делаю неправильно? Я не испытываю отладки.

EDIT--

Ниже будет показано тост, содержащий: «Что-то реально не так»

try { 
        if(editText1 != null) { 
         pro = Double.parseDouble(editText1.getText().toString()); 
        } else { 
         Context context = getApplicationContext(); 
         CharSequence text = "Something real wrong"; 
         int duration = Toast.LENGTH_SHORT; 

         Toast toast = Toast.makeText(context, text, duration); 
         toast.show(); 
        } 
       } catch(NumberFormatException e) { 
        Context context = getApplicationContext(); 
        CharSequence text = "Empty"; 
        int duration = Toast.LENGTH_SHORT; 

        Toast toast = Toast.makeText(context, text, duration); 
        toast.show(); 
       } 
+0

Сообщение о LogCat, пожалуйста –

+0

Вы пытались установить какой-нибудь текст в первую очередь? – alicanbatur

+0

Можете ли вы опубликовать строки ошибок на вашем logcat. Также вы можете неправильно инициализировать editText1. – wrecker

ответ

1

Сначала вы должны проверить, если ваш editText1 является null (это была ваша актуальная проблема *!), чем проверить, выбрано ли NumberFormatException.

*) Ваша проблема в том, что вы только что определили неинициализированную ссылку на свой контроль. Вы должны получить ссылку с функцией findViewById():

EditText editText1 = (EditText)findViewById(R.id.editText1); 
double pro; 
try { 
    if(editText1 != null) { 
     pro = Double.parseDouble(editText1.getText().toString()); 
    } else { 
     // you have an coding problem ;-) 
     // this should now just happen if you change the id in your xml 
    } 
} catch(NumberFormatException e) { 
    // input was no number or an empty string 
} 
+0

Я попадаю в // у вас проблема с кодировкой ;-). С обновленным кодом. – jipje44

+0

@ jipje44 Вы должны инициализировать переменную 'EditText' –

+0

. Вы должны обратиться к своему управлению с помощью' 'findViewById()'] (http://developer.android.com/reference/android/app/Activity.html#findViewById% 28int% 29). Я обновлю свой код. – rekire

Смежные вопросы