web-dev-qa-db-ja.com

Android-editTextのデフォルト値

私のアプリでは、ユーザー詳細の編集ページがあり、対応するeditTextフィールドに現在の名前、電子メールアドレスなどを表示したいので、ユーザーは必要に応じてそれを消去して新しいフィールドを入力できます。

これを行う方法はありますか?助けてくれてありがとう

29
user1360909

EditText.setText(...) を使用して、EditTextフィールドの現在のテキストを設定できます。

例:

yourEditText.setText(currentUserName);
31
aioobe

hint機能はありますか? setHint()を使用して設定するか、XMLで設定できます(XMLはユーザーの名前/住所を「知らない」ため、おそらく必要ありませんが)。

37
Nanne

Xmlから:

  Android:text="yourtext"
19
andoni90

特定のEdittextフィールドに対して、xmlファイルでtextプロパティを使用できます。例えば ​​:

<EditText
    Android:id="@+id/ET_User"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="yourusername"/>

このように、すべてのEdittextフィールドには任意のテキストが含まれます。ユーザーが特定のEdittextフィールドを変更する場合、古いテキストを削除して新しいテキストを入力します。

別の方法アクティビティクラスで特定のEdittextフィールドIDを取得し、そのテキストを設定します。

別の方法=プログラムで

例:

EditText username=(EditText)findViewById(R.id.ET_User);

username.setText("jack");
13
Rajender Reddy

まず、何らかの方法でユーザーの詳細を読み込む必要があります

次に、EditTextがない場合は見つける必要があります。

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

editTextを見つけたら、呼び出します

et.setText(theUserName);
2
mihail

この方法でできます

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