簡體   English   中英

Android - editText 中的默認值

[英]Android - default value in editText

在我的應用程序中,我有一個編輯用戶詳細信息頁面,我想在相應的 editText 字段中顯示當前姓名、電子郵件地址等,然后用戶可以刪除它並根據需要輸入一個新的。

有沒有辦法做到這一點? 謝謝你的幫助

hint功能嗎? 您可以使用setHint()來設置它,或在 XML 中設置它(盡管您可能不想要那樣,因為 XML 不“知道”您的用戶的姓名/地址:))

您可以使用EditText.setText(...)來設置 EditText 字段的當前文本。

例子:

yourEditText.setText(currentUserName);

從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM