У меня есть поле EditText для поля имени и кнопка. Когда я набираю имя в поле и нажимаю кнопку. Должно отображаться «Привет» + значение поля EditText.
Мое решение - getText (). ToString () для объекта EditText и передать его в строковую переменную. Но он возвращает "" всякий раз, когда я использую его для setText ().
Я использовал это вместо этого, и оно работает, но я запутался, в чем разница? nametext.setText ( "Привет, nametext.getText () ToString ().);
Button btn_show;
EditText nametext;
String input_msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nametext = findViewById(R.id.name_text);
input_msg = nametext.getText().toString();
btn_show = findViewById(R.id.hi);
btn_show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nametext.setText("Hi, " + input_msg); // this returns ""
/* when i use nametext.getText().toString() in place of input_msg
/* it returns the string I typed in the edittext. What's the
/* difference?
/* nametext.setText("Hi,nametext.getText().toString()); // returns the actual string I typed in the edittext field
}
});
}
nametext.setText ("Привет, nametext.getText (). ToString ()); // возвращает фактическую строку, набранную в поле
nametext.setText («Привет» + input_msg); // возвращает ""