как вы вызываете значение, введенное в пользовательском интерфейсе для вашего Java-класса? - PullRequest
0 голосов
/ 24 января 2010

Создание простого приложения для моего андроида.

в моем интерфейсе xml есть текстовое поле, в которое пользователь вводит число (например, 10). идентификатор этого текстового поля - «input1»

как мне вызвать значение input1 в java, а затем выполнить его вычисление?

Например ...

предположим, что input1 = x

х + 5 или х * 2

и, если уж на то пошло, как получить итоговое значение в виде постоянно обновляемого текстового вывода в указанном месте интерфейса?

Ответы [ 2 ]

4 голосов
/ 24 января 2010

В Activity, где вы используете этот XML-формат, вы должны сделать следующее:

private EditText input;
private EditText result;

public void onCreate(Bundle b) {
    setContentView(R.layout.my_activity);

    // Extract the text fields from the XML layout
    input = (EditText) findById(R.id.input1);
    result = (EditText) findById(R.id.result);

    // Perform calculation when input text changes
    input.addKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keycode, KeyEvent keyevent) {
            if (keyevent.getAction() == KeyEvent.ACTION_UP) {
                doCalculation();
            }
            return false;
        }
    });
}

private void doCalculation() {
    // Get entered input value
    String strValue = input.getText().toString;

    // Perform a hard-coded calculation
    int result = Integer.parseInt(strValue) * 2;

    // Update the UI with the result
    result.setText("Result: "+ result);
}

Обратите внимание, что вышеприведенное не включает обработку ошибок: предполагается, что вы ограничили текстовое поле input1 разрешением ввода только целых чисел.

3 голосов
/ 24 января 2010

В вашем XML вы также можете установить android:inputType="number", чтобы разрешить ввод только цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...