0

EditTextsユーザー名とパスワード用に2つあり、それぞれデフォルトのテキストとして「ENTER A USERNAME」「ENTER A PASSWORD」というテキストがあります。

テキストの色は薄い灰色です。彼らが集中したら、テキストの色とパスワード 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>
4

3 に答える 3

3

ENTER A USERNAME" と "ENTER A PASSWORD" を Edittext のヒント テキストとして設定しない理由

android:hint="Enter User Name"

ユーザーが Edittext をクリックすると、自動的に消えます。

于 2012-05-04T05:43:21.563 に答える
1

Xml でHintプロパティを使用して値をデフォルトとして設定します。

お気に入り:

android:hint="@string/username"

android:hint="@string/password"

その代わり

android:text="@string/username"

android:text="@string/password"

于 2012-05-04T05:52:02.957 に答える
0

使用する

android:hint="@string/passwordField"

それ以外の

android:text="@string/passwordField"

ユーザー名で同じことを行います

于 2012-05-04T05:44:08.010 に答える