Ответ 1
Вы можете использовать EditText.setText(...)
, чтобы установить текущий текст поля EditText.
Пример:
yourEditText.setText(currentUserName);
В моем приложении у меня есть страница редактирования пользовательских деталей, и я хочу отображать текущее имя, адрес электронной почты и т.д. в соответствующих полях editText, а затем пользователь может просто удалить его и ввести новый, если они захотят.
Есть ли способ сделать это? Спасибо за любую помощь
Вы можете использовать EditText.setText(...)
, чтобы установить текущий текст поля EditText.
Пример:
yourEditText.setText(currentUserName);
Есть функция hint
? Вы можете использовать setHint()
для его установки или установить в XML (хотя вы, вероятно, этого не хотите, потому что XML не "знает" имя/адрес вашего пользователя:))
Из xml:
android:text="yourtext"
Вы можете использовать свойство text в вашем XML файле для определенных полей Edittext. Например:
<EditText
android:id="@+id/ET_User"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="yourusername"/>
как и все поля Edittext содержат текст, который вам нужен, если пользователь хочет изменить конкретное поле Edittext, он удаляет старый текст и вводит свой новый текст.
В Другой способ только вы получите конкретный идентификатор поля Edittext в классе активности и установите для него текст.
Другой способ = программно
Пример:
EditText username=(EditText)findViewById(R.id.ET_User);
username.setText("jack");
Сначала вам нужно как-то загрузить данные пользователя
Затем вам нужно найти свой EditText, если у вас его нет -
EditText et = (EditText)findViewById(R.id.youredittext);
после того, как вы нашли свой EditText, вызовите
et.setText(theUserName);
Вы можете сделать это таким образом
private EditText nameEdit;
private EditText emailEdit;
private String nameDefaultValue = "Your Name";
private String emailDefaultValue = "[email protected]";
и внутри метода onCreate
nameEdit = (EditText) findViewById(R.id.name);
nameEdit.setText(nameDefaultValue);
nameEdit.setOnTouchListener( new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (nameEdit.getText().toString().equals(nameDefaultValue)){
nameEdit.setText("");
}
return false;
}
});
nameEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus && TextUtils.isEmpty(nameEdit.getText().toString())){
nameEdit.setText(nameDefaultValue);
} else if (hasFocus && nameEdit.getText().toString().equals(nameDefaultValue)){
nameEdit.setText("");
}
}
});
emailEdit = (EditText)findViewById(R.id.email);
emailEdit.setText(emailDefaultValue);
emailEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus && TextUtils.isEmpty(emailEdit.getText().toString())){
emailEdit.setText(emailDefaultValue);
} else if (hasFocus && emailEdit.getText().toString().equals(emailDefaultValue)){
emailEdit.setText("");
}
}
});