Подтвердить что ты не робот

Android - значение по умолчанию в editText

В моем приложении у меня есть страница редактирования пользовательских деталей, и я хочу отображать текущее имя, адрес электронной почты и т.д. в соответствующих полях editText, а затем пользователь может просто удалить его и ввести новый, если они захотят.

Есть ли способ сделать это? Спасибо за любую помощь

4b9b3361

Ответ 1

Вы можете использовать EditText.setText(...), чтобы установить текущий текст поля EditText.

Пример:

yourEditText.setText(currentUserName);

Ответ 2

Есть функция hint? Вы можете использовать setHint() для его установки или установить в XML (хотя вы, вероятно, этого не хотите, потому что XML не "знает" имя/адрес вашего пользователя:))

Ответ 3

Из xml:

  android:text="yourtext"

Ответ 4

Вы можете использовать свойство 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");

Ответ 5

Сначала вам нужно как-то загрузить данные пользователя

Затем вам нужно найти свой EditText, если у вас его нет -

EditText et = (EditText)findViewById(R.id.youredittext);

после того, как вы нашли свой EditText, вызовите

et.setText(theUserName);

Ответ 6

Вы можете сделать это таким образом

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("");
            }
        }
    });