Android自定义密码样式 黑点转换成特殊字符
本文为大家分享了Android自定义密码样式的制作代码,黑点换成¥、%等特殊字符,供大家参考,具体内容如下
复制下面代码即可:
布局:
activity:
packagecom.chen;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.text.method.HideReturnsTransformationMethod;
importandroid.text.method.PasswordTransformationMethod;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
publicclassMainActivityextendsActivity{
Buttonpsd;
Buttonshow_text;
EditTextet;
Buttonclean;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将输入框中的内容变为密码格式
psd=(Button)findViewById(R.id.password);
//将密码变为明文
show_text=(Button)findViewById(R.id.show_text);
//清空输入框
clean=(Button)findViewById(R.id.clean);
et=(EditText)findViewById(R.id.et);
show_text.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//获取编辑框中的数据内容
Stringcontext=et.getText().toString();
//将密码变为明文,这里不用setInputType
et.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
//设置光标位置在数据最后
et.setSelection(context.length());
}
});
psd.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//获取编辑框中的数据内容
Stringcontext=et.getText().toString();
//将数据变为指定样式的密码
et.setTransformationMethod(newAsteriskPasswordTransformationMethod());
//设置光标位置在数据最后
et.setSelection(context.length());
}
});
clean.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
et.setText("");
}
});
}
privateclassAsteriskPasswordTransformationMethodextendsPasswordTransformationMethod{
@Override
publicCharSequencegetTransformation(CharSequencesource,Viewview){
returnnewPasswordCharSequence(source);
}
privateclassPasswordCharSequenceimplementsCharSequence{
privateCharSequencemSource;
publicPasswordCharSequence(CharSequencesource){
mSource=source;//Storecharsequence
}
publiccharcharAt(intindex){
/*
当在编辑框中输入1的时候,会连续打印0...
当在编辑框中继续输入2的时候,会连续01...
不影响功能使用,但是出现原因不知,待解决
*/
System.out.println("-----"+index+"-----");
//这里返回的char,就是密码的样式,注意,是char类型的
return'$';//Thisistheimportantpart
}
publicintlength(){
returnmSource.length();//Returndefault
}
publicCharSequencesubSequence(intstart,intend){
returnmSource.subSequence(start,end);//Returndefault
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。