nikstormd
@nikstormd
HTML-верстальщик, программист

Почему приложение на Android вылетает с ошибкой?

public class MainActivity extends AppCompatActivity {
    TextView Discr;
    EditText b;
    Double x;
    Double d;
    Integer z;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Discr = (TextView) findViewById(R.id.d);
     b = (EditText) findViewById(R.id.b);
     z = Integer.parseInt(b.getText().toString()); ****
     d = Math.pow(z,2);
     Discr.setText(d.toString());

    }


При запуске на эмуляторе вылетает : Unfortunately App was stopped. Если убрать строку, помеченную **** и в следующей строке заменить z на число, то все работает. То есть трабла в parseInt, что я делаю не так? По сути надо взять значение из EditText, и с его помощью него вычислить некое значение, в данном случае возвести в квадрат число из поля b.
  • Вопрос задан
  • 329 просмотров
Пригласить эксперта
Ответы на вопрос 1
@YuryBorodkin
Android dev
очевидно, что спарсить инт не получается, edittext пустой/там не число.
чтобы получать следить за введенным в edittext, нужно
b.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(Editable s) {
Integer integer = null;
try {
integer = Integer.parseInt(s.toString());
Discr.setText(integer.toString());
} catch (NumberFormatException ignored) {

}
}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы