Android: Как установить содержимое редактируемого текста нажатием кнопки? - PullRequest
5 голосов
/ 23 апреля 2010

Я новичок на Android.Я думаю о реализации простого калькулятора в Android, чтобы овладеть основами в Android.Я хочу отобразить клавиатуру с числами и математическими операциями, и когда пользователь нажимает клавиши, соответствующее число отображается в тексте редактирования.Я попытался использовать gettext () и обновить содержимое редактируемого текста, но оно показывает только содержимое нажатой кнопки.Также, как мне прочитать содержимое кнопки, чтобы выполнять математические операции в коде?Любая помощь будет высоко ценится.

С уважением,

Изначальный

Ответы [ 4 ]

6 голосов
/ 23 апреля 2010

Чтобы установить содержимое EditText:

EditText text = (EditText) findViewById(R.id.your_text);
text.setText("Display this text");

Вместо того, чтобы пытаться извлечь текст из ваших кнопок и использовать его как целое число, я бы просто добавил прослушиватель щелчков для каждого, который «знает» значение своей кнопки:

Button button = (Button) findViewById(R.id.num_1);
button.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
        // Do something with the value of the button
    }
});
5 голосов
/ 23 апреля 2010

Рассматривать заголовок кнопки как фактические данные - это довольно приемлемая практика, когда вы выполняете цифровые кнопки в калькуляторе, поэтому я не знаю, подходит ли это для «основ андроида»;)

Независимо;

Вы заявляете, что хотите отобразить соответствующий номер, когда пользователь нажимает клавишу (кнопку?).А потом вы говорите getText просто показывает содержание нажатой кнопки ... Это не совсем то, что вы просите?Возможно, вам потребуется предоставить немного кода и показать нам, что работает не так, как вы хотели.Но если у кнопки есть текст «8», и вы хотите трактовать его как восьмерку в математических операциях, вам нужно проанализировать его:

Integer myNumber = Integer.parse(myButton.getText());

... что, конечно, вызовет исключение, еслитекст myButton не преобразуется в целое число.

РЕДАКТИРОВАТЬ, КАК КОММЕНТАРИЙ

Из объяснения вашей проблемы, которое вы дали в своем комментарии, да,setText() полностью сбрасывает текст до значения, которое он передает, но вы можете использовать комбинацию этого и getText(), если вы просто хотите добавить что-то к текущему значению:

myEditText.setText( myEditText.getText() + " " + myButton.getText() );
4 голосов
/ 12 сентября 2012

Попробуйте следующий код.

EditText x = (EditText)findviewbyid(R.id.abc);

Не использовать x.setText(); вместо этого используйте x.append(Your variable or value here). Это не удалит текст, полученный с предыдущей кнопки.

2 голосов
/ 08 мая 2012

Чтобы установить текст кнопки в EditText:

EditText edittext=(EditText)findviewById(R.id.edittext); 
Button num1=(Button)findViewById(R.id.button_num1);
Button num2=(Button)findviewById(R.id.button_num2);
num1.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) {
        edittext.append("1");
    } 
});
num1.setOnClickListener(new View.OnClickListener() { 
    @Override
    public void onClick(View v) {
        edittext.append("2");
    } 
});

для простого расчета см. здесь это поможет вам создать калькулятор в Android.

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