Не можете получить результат от трех EditText? - PullRequest
0 голосов
/ 05 августа 2011

Я пытаюсь взять числа из трех полей EditText, которые заполняет пользователь, затем с помощью некоторой простой математики и нажатия кнопки пользователем должен быть ответ через textView.Также всякий раз, когда я запускаю это приложение на эмуляторе, оно говорит, что оно должно быть принудительно закрыто, как только я нажимаю на кнопку, чтобы перейти к этому макету и коду.Вот код:

                 package com.app.one;

import com.app.one.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class monthlyp extends Activity {
int x = 10;
int y= 10;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.monthlyp);

      final TextView input = (TextView) findViewById(R.id.editone);           
      final Button btn = (Button) findViewById(R.id.equals);
      final EditText textView13 = (EditText) findViewById(R.id.textView13); 

      btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {


            y = Integer.parseInt(input.getText().toString());
            textView13.setText(String.valueOf(y));
        }
      });       
}
    }

Я знаю, что у него есть только одна область EditText, но это потому, что мне нужна помощь в добавлении еще двух и возможности использовать их как целые числа для сложения / вычитания / деления / умножения.В xml есть все три поля редактирования текста и кнопка равенства, которая решит, что введено.Спасибо за помощь и, пожалуйста, спросите меня, если вам нужна дополнительная информация.

Ответы [ 4 ]

2 голосов
/ 05 августа 2011

Во-первых, кажется, что ваш ввод - это TextView, а вывод - EditText. Это кажется задом наперед. Если ваш XML правильный и ваш ввод является EditText, у вас могут возникнуть проблемы при попытке преобразовать его в TextView.

1 голос
/ 05 августа 2011

Две вещи сразу:

  1. Вы преобразовали строку в целое число, а затем снова вернулись в целое число, чтобы поместить ее в другое поле. Это плохо, это называется йо-йо-код. Сохраните строковое значение и сохраните его.

  2. Integer.parseInt () может вызвать исключение NumberFormatException, если в этот EditText не введено действительное целое число. Вам нужно попытаться обойти это исключение и обработать недопустимые случаи, предпочтительно вызывая setError () для вашего текста редактирования.

http://developer.android.com/reference/java/lang/Integer.html#parseInt%28java.lang.String%29

edit: и да, как говорили другие ... не называйте свой EditText "textView13"

0 голосов
/ 05 августа 2011

Вы, кажется, получаете свой ввод из TextView и публикуете вывод в EditText. Разве это не должно быть наоборот?

0 голосов
/ 05 августа 2011

Вы говорите, что ввод - это просмотр текста

final TextView input = (TextView) findViewById(R.id.editone);    

тогда вы получили целочисленное значение этого текстового представления

y = Integer.parseInt(input.getText().toString());

Я полагаю, это не то, что вы намеревались

...