Я пытаюсь сделать приложение калькулятора, которое отображает все, что пользователь нажимает на текстовый экран редактирования, однако, когда пользователь нажимает кнопку, экран редактирования текста по-прежнему остается пустым. Я поставил некоторые заявления для печати, чтобы узнать, что происходит, и это то, что я выяснил:Как отображать значения при редактировании текста, когда пользователь нажимает кнопку?
Заявление о печати в updateEditText()
всегда пустое, даже если пользователь нажимает кнопку, но оператор печати в getValuesPressed()
успешно распечатывает, где нажали кнопки.
Я не понимаю, что я делаю неправильно.
Вот что у меня есть:
void updateEditText(){
EditText et = (EditText) findViewById(R.id.editText);
System.out.println("THE VALUE PRESSED IS: " + getValuesPressed());
et.setText(getValuesPressed());//problem here
}
//return and concat the buttons that were clicked
String getValuesPressed(){
for(int i = 0; i < buttonList.length; i++){
final int j = i;
buttonList[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("THE BUTTON WAS PRESSED: " + buttonList[j].getText());
switch(j){
case 0://CLEAR
textOnScreen = "0";
break;
case 5://SQRT
solveEquation();
//CASE: IF IT IS NEG U CANT TAKE THE SQRT!!!!
textOnScreen = String.valueOf(Math.sqrt(Double.parseDouble(textOnScreen)));
break;
case 18: //NEGATIVE
if(textOnScreen.charAt(textOnScreen.length() - 1) != '-')
textOnScreen = textOnScreen + "-";
else
textOnScreen = textOnScreen.substring(0, textOnScreen.length() - 1);
break;
case 19: //BACKSPACE
if(textOnScreen.length() == 1)
textOnScreen = "0";
else
textOnScreen = textOnScreen.substring(0, textOnScreen.length() - 1);
break;
case 20: //SOLVE
solveEquation();
break;
default://concat all of the other buttons pressed
textOnScreen = textOnScreen + buttonList[j].getText();
break;
}
}
});
}
return textOnScreen;
}
getValuesPressed() - это целая строка? – Destro
@Destro возвращает строку –
Вы пытались сделать некоторые точки останова, чтобы увидеть, где он работает? Я имею в виду внутри функции getValuesPressed() –