[英]Android - default value in editText
在我的應用程序中,我有一個編輯用戶詳細信息頁面,我想在相應的 editText 字段中顯示當前姓名、電子郵件地址等,然后用戶可以刪除它並根據需要輸入一個新的。
有沒有辦法做到這一點? 謝謝你的幫助
有hint
功能嗎? 您可以使用setHint()
來設置它,或在 XML 中設置它(盡管您可能不想要那樣,因為 XML 不“知道”您的用戶的姓名/地址:))
從xml:
android:text="yourtext"
您可以在xml文件中為特定的 Edittext 字段使用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 = "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("");
}
}
});
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");
}
}
使用 android android:hint 設置默認值或 android:text
我們希望在未來版本的 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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.