我是android新手 我有一个编辑框。我们必须在EditBox中输入用于注册屏幕的密码。 我想要的是,当用户点击它时,它会突出显示EditBox,然后字符越过6个字符的限制,然后在EditBox右侧显示一个绿色勾号。 如果你能给我代码 这是我的代码
我会非常感谢你 提前致谢 Gaurav Mehta
答案 0 :(得分:0)
1)在drawable目录中创建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)在drawable目录中创建normal_bg
。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#00FFFFFF" />
</shape>
3)在drawable目录中创建highlight_bg
。
<?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);
}
}
});