Как получить текст от EditText?
-
21-09-2019 - |
Вопрос
Вопрос довольно прост. Но я хочу знать, где именно мы ссылаемся на элементы графического интерфейса? Как это лучшее место для определения:
final EditText edit = (EditText) findViewById(R.id.text_xyz);
edit.getText.tostring();
Когда я пробую это делать внутри по умолчанию Oncreate (), я получаю нулевые значения. Поэтому для лучшей практики вы рекомендуете отдельный класс для ссылки на эти уже определенные элементы графического интерфейса в main.xml. Отсюда мы можем назвать различные методы этих элементов, такие как GetText или SetText?
Решение
Ну, это зависит от ваших потребностей. Очень часто я сохраняю свои ссылки на виджеты в активности (как поля классов) - и устанавливаю их в onCreate
метод Я думаю, это хорошая идея
Наверное, причина ваших нулей в том, что вы пытаетесь позвонить findViewById()
прежде чем установить contentView()
в твоей onCreate()
Метод - пожалуйста, проверьте это.
Другие советы
Самое быстрое решение вашей проблемы, я считаю, что вам просто не хватает скобок на своих getText
. Анкет Просто добавьте ()
к edit.getText().toString()
И это должно это решить
Если вы делаете это до setContentView()
Метод вызов, тогда значения будут нулевыми.
Это приведет к нулю:
super.onCreate(savedInstanceState);
Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();
setContentView(R.layout.main_contacts);
Пока это будет работать нормально:
super.onCreate(savedInstanceState);
setContentView(R.layout.main_contacts);
Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();
String fname = ((EditText)findViewById(R.id.txtFirstName)).getText().toString();
String lname = ((EditText)findViewById(R.id.txtLastName)).getText().toString();
((EditText)findViewById(R.id.txtFullName)).setText(fname + " "+lname);
Поместите следующее после метода SetContentView ().
final EditText edit = (EditText) findViewById(R.id.Your_Edit_ID);
String emailString = (String) edit.getText().toString();
Log.d("email",emailString);