Вопрос

Вопрос довольно прост. Но я хочу знать, где именно мы ссылаемся на элементы графического интерфейса? Как это лучшее место для определения:

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top