Я - новобранец к андроиду. Я думаю о реализации простого калькулятора в андроиде для овладевания основами в андроиде. Я хочу отобразить клавиатуру с числами и математическими операциями и когда пользователь нажимает клавиши, соответствующее число отображено в тексте редактирования. Я пытался использовать gettext () и обновить содержание текста редактирования, но он показывает просто содержание нажатой кнопки. Также, как я читаю содержание кнопки, чтобы сделать математические операции в коде? Любая справка очень ценилась бы.
с уважением,
Основной
Обработка заголовка кнопки как фактических данных - это то, что в значительной степени является единственно приемлемой практикой, когда вы нажимаете цифровые кнопки в калькуляторе, поэтому я не знаю, применимо ли это к «основам Android»; )
Независимо;
Вы заявляете, что хотите отображать соответствующий номер, когда пользователь нажимает клавишу (кнопку?). И затем вы говорите, что getText
просто показывает вам содержимое нажатой кнопки ... Разве это не совсем то, о чем вы просите? Возможно, вам потребуется предоставить немного кода и показать нам, что работает не так, как вы планировали. Но если на кнопке есть текст «8», и вы хотите рассматривать это как восьмерку в математических операциях, вам необходимо проанализировать ее:
Integer myNumber = Integer.parse(myButton.getText());
... что, конечно, вызовет исключение, если текст myButton
не разрешается в целое число.
ИЗМЕНИТЬ, КАК КОММЕНТАРИЙ
Из объяснения вашей проблемы, которое вы дали в своем комментарии, да, setText ()
полностью сбрасывает текст до значения, которое он передал, но вы можете использовать комбинация этого и getText ()
, если вы просто хотите добавить что-то к текущему значению:
myEditText.setText( myEditText.getText() + " " + myButton.getText() );
Чтобы установить содержимое EditText:
EditText text = (EditText) findViewById(R.id.your_text);
text.setText("Display this text");
Вместо того, чтобы пытаться вытащить текст из ваших кнопок и использовать его как целое число, я бы просто добавил прослушиватель кликов к каждому из них, который "знает" значение своего button:
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
}
});