Android – editText中的默认值

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

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

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

例:

 yourEditText.setText(currentUserName); 

hintfunction? 您可以使用setHint()来设置它,或者将其设置为XML(尽管您可能不希望这样,因为XML不知道您的用户的名称/地址:))

从xml:

  android:text="yourtext" 

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

  

像这样所有的Edittext字段都包含任何你想要的文本,如果用户想要更改特定的Edittext字段,他会删除旧文本并输入他的新文本。

换句话说,只需在活动类中获取特定的Edittext字段ID ,并将文本设置为该文本。

另一种方式=编程

例:

 EditText username=(EditText)findViewById(R.id.ET_User); username.setText("jack"); 

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

如果你没有它,你需要find你的EditText-

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

findEditText后,请致电

 et.setText(theUserName); 

你可以这样做

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