37

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

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

4

9 に答える 9

42

機能はありhintますか?を使用しsetHint()て設定することも、XMLで設定することもできます(ただし、XMLはユーザーの名前/アドレスを「認識」していないため、おそらく必要ありません:))

于 2012-04-27T10:36:07.950 に答える
37

EditText.setText(...)EditTextフィールドの現在のテキストを設定するために使用できます。

例:

yourEditText.setText(currentUserName);
于 2012-04-27T10:36:39.977 に答える
25

xmlから:

  android:text="yourtext"
于 2012-04-27T10:40:57.680 に答える
14

特定の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を取得し、テキストをそのIDに設定するだけです。

別の方法=プログラムで

例:

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

username.setText("jack");
于 2012-04-27T12:22:14.733 に答える
2

まず、何らかの方法でユーザーの詳細をロードする必要があります

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

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

EditTextを見つけたら、

et.setText(theUserName);
于 2012-04-27T10:59:54.400 に答える
2

あなたはこのようにそれを行うことができます

private EditText nameEdit;
private EditText emailEdit;
private String nameDefaultValue = "Your Name";
private String emailDefaultValue = "abc@xyz.com";

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("");
            }
        }
    });
于 2012-04-27T11:30:12.113 に答える
0
 public class Main extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText et = (EditText) findViewById(R.id.et);
        EditText et_city = (EditText) findViewById(R.id.et_city);
        // Set the default text of second EditText widget
        et_city.setText("USA");
 }
}
于 2019-10-24T00:36:44.420 に答える
0

デフォルト値の設定にはandroidandroid:hintを使用するか、android:textを使用します

于 2020-11-06T11:40:54.097 に答える
0

SDKの将来のバージョンでは、Androidビューまたはグループビューの各ビューにデフォルト値の属性があることを望みます。ただし、これを克服するには、送信する前に、ビューが空であるかtrueに等しいかを確認してから、デフォルト値を割り当てます。

例:

   /* add 0 as default numeric value to a price field when skipped by a user,
                    in order to avoid parsing error of empty or improper format value. */
                    if (Objects.requireNonNull(edPrice.getText()).toString().trim().isEmpty())
                    edPrice.setText("0");
于 2021-02-21T21:10:25.567 に答える