私のアプリでは、ユーザー詳細の編集ページがあり、対応するeditTextフィールドに現在の名前、電子メールアドレスなどを表示したいので、ユーザーは必要に応じてそれを消去して新しいフィールドを入力できます。
これを行う方法はありますか?助けてくれてありがとう
hint
機能はありますか? setHint()
を使用して設定するか、XMLで設定できます(XMLはユーザーの名前/住所を「知らない」ため、おそらく必要ありませんが)。
Xmlから:
Android:text="yourtext"
特定の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");
まず、何らかの方法でユーザーの詳細を読み込む必要があります
次に、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("");
}
}
});