-1

我是 android 新手,我有一个编辑框。我们必须在 EditBox 中输入密码才能注册屏幕。我想要这样,当用户单击它时,它会突出显示 EditBox,然后字符超过 6 个字符的限制,然后在 EditBox 的右侧会显示一个绿色的勾号。如果你能给我代码这是我的代码

我会非常感谢你提前谢谢 Gaurav Mehta

4

1 回答 1

0

1)创建一个hightlight.xml可绘制目录。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/highlight_bg" android:state_focused="true"></item>
    <item android:drawable="@drawable/normal_bg" android:state_focused="false"></item>
</selector>

2)normal_bg在drawable目录中创建。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#00FFFFFF" />
</shape>

3)highlight_bg在drawable目录中创建。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <solid android:color="#FFFF0000" />
</shape>

4)在您的布局中,您需要使用以下参数创建。

<RelativeLayout
    android:id="@+id/frameLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="31dp" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/highlight"
        android:ems="10"
        android:hint="Enter Password"
        android:inputType="textPassword" >
    </EditText>

    <ImageView
        android:id="@+id/imgTick"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_alignRight="@+id/editText1"
        android:src="@drawable/tick"
        android:visibility="gone" />
</RelativeLayout>

将任何刻度图像放在您的可绘制目录中。

5)输入以下代码以获取密码字段的长度监听器。

EditText editText1 = (EditText)findViewById(R.id.editText1);
editText1.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        if(s.length()>6){
            findViewById(R.id.imgTick).setVisibility(View.VISIBLE);
        }else{
            findViewById(R.id.imgTick).setVisibility(View.GONE);
        }
    }
});
于 2013-07-24T07:38:14.957 回答