Android - editText中的默认值

时间:2012-04-27 10:33:17

标签: java android android-edittext

在我的应用程序中,我有一个编辑用户详细信息页面,我想在相应的editText字段中显示当前名称,电子邮件地址等,然后用户可以删除它并根据需要输入新的。

有办法做到这一点吗?谢谢你的帮助

9 个答案:

答案 0 :(得分:35)

hint功能吗?您可以使用setHint()进行设置,或者将其设置为XML(尽管您可能不希望这样,因为XML不会“知道”您的用户的名称/地址:))

答案 1 :(得分:30)

您可以使用EditText.setText(...)设置EditText字段的当前文本。

示例:

yourEditText.setText(currentUserName);

答案 2 :(得分:18)

来自xml:

  android:text="yourtext"

答案 3 :(得分:13)

您可以在 xml 文件中使用 text 属性来处理特定的Edittext字段。 例如:

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

答案 4 :(得分:2)

首先,您需要以某种方式加载用户详细信息

如果你没有,你需要找到你的EditText -

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

找到EditText后,请致电

et.setText(theUserName);

答案 5 :(得分:0)

你可以这样做

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

答案 6 :(得分:0)

WARNING: Migration: reverseEngineerTable: Skipping index tblProducts.txtContractType on a LONGCHAR column

答案 7 :(得分:0)

使用android android:hint设置默认值或android:text

答案 8 :(得分:0)

我们希望在未来版本的 SDK 中,android 视图或组视图的每个视图中都有一个默认值属性。但是为了克服这个问题,在提交之前,检查视图是否为空等于真,然后分配一个默认值

示例:

   /* 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");