2012-05-04 61 views
0

在編輯一個EditText我有兩個EditTexts用戶名和密碼,每一個都具有文本「輸入用戶名」「輸入密碼」分別作爲缺省的文本。問題而焦點變化

他們的文字顏色是淺灰色。現在,當他們專注於焦點時,他們應該將文本顏色以及密碼edittext的inputType更改爲密碼類型(除其他外,其他內容除外)。

它最初成功地將文本顏色更改爲黑色,但未能更改並且inputType從不更改。

請給我建議,我欠缺的,下面是我的代碼:

OnFocusChangeListener pwListener = new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) { 
       //if it has focus then clear the text and make text black 
       if(((EditText) v).getText().toString().compareTo(getString(R.string.passwordField)) == 0) { 
        ((EditText) v).setTextColor(R.color.Black); 
        ((EditText) v).setText(R.string.blank); 
        ((EditText) v).setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 
       } 
      } else if(!hasFocus) { 
       //if it loses focus and nothing was inputed then change back to default 
       if(isEmpty(((EditText) v).getText().toString())) { 
        ((EditText) v).setTextColor(R.color.TextInput); 
        ((EditText) v).setText(R.string.passwordField); 
        ((EditText) v).setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME); 
       } 
      } 
     } 
    }; 

那密碼編輯文本,這是它的XML:

<EditText 
    android:id="@+id/passwordInput" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:layout_marginTop="5dip" 
    android:layout_marginLeft="20dip" 
    android:layout_marginRight="20dip" 
    android:paddingTop="15dip" 
    android:paddingBottom="15dip" 
    android:text="@string/passwordField" 
    android:textColor="@color/TextInput" 
    android:textSize="25sp" 
    android:gravity="center_vertical" 
    android:ems="10" > 
</EditText> 

回答

3

爲什麼你不設置輸入用戶名「和」請輸入密碼「作爲提示文本使用

android:hint="Enter User Name" 

它會自動di在用戶點擊Edittext時出現。

+0

哇哈哈,將已經救了我這麼多時間,如果我只是早點知道。謝謝 –

+0

Upvote並接受帖子,如果你覺得有用。 –

0

使用,而不是

android:hint="@string/passwordField" 

android:text="@string/passwordField" 

並做用戶名

1

在XML同樣使用Hint屬性值設置爲默認值。

,如:

android:hint="@string/username"

android:hint="@string/password"

相反

android:text="@string/username"

android:text="@string/password"