2012-04-27 72 views
25

在我的應用程序中,我有一個編輯用戶詳細信息頁面,我想在相應的editText字段中顯示當前名稱,電子郵件地址等,然後用戶可以刪除它並輸入一個新的if他們要。Android - 在editText中的默認值

有沒有辦法做到這一點?感謝您的任何幫助

+2

這個網站是爲你http://developer.android.com/index.html – MKJParekh 2012-04-27 10:40:45

回答

28

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

例子:

yourEditText.setText(currentUserName); 
+0

這使我的應用程序崩潰。:( – Rishav 2017-06-12 21:45:29

33

hint功能?您可以使用setHint()來設置它,或者將其設置爲XML(儘管您可能不想這樣做,因爲XML不知道您的用戶的姓名/地址:))

+2

感謝您的提示;)這是什麼使提示有點不同於常規文本: \t \t title.setHint(Html.fromHtml(「」+ DEFAULT_TITLE +「」) ); – MikeL 2012-10-02 21:59:34

+0

在java中設置提示 - >'inputPhoneNumber.setHint(R.string.examplePhoneNumber);'(謝謝你Nanne) – tmr 2014-10-19 19:52:58

16

從XML:

android:text="yourtext" 
+1

這不適用於TextView(我試着用android api 4.0) – csharpfolk 2014-05-12 17:44:54

2

首先你需要加載用戶的詳細信息以某種方式

然後,你需要找到你的EditText如果你沒有它 -

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

你發現你的EditText後,打電話

et.setText(theUserName); 
0

你能做到這樣

private EditText nameEdit; 
private EditText emailEdit; 
private String nameDefaultValue = "Your Name"; 
private String emailDefaultValue = "[email protected]"; 

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

我認爲你不需要添加ontouchlistener,它可以在setonfocuschangelistener的兩個字段中工作。 – MikeL 2012-10-02 21:49:47

11

可以使用文本中財產xml文件爲特定的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"); 
相關問題