Android提取最后一个字符,android – 在EditText中显示密码的最后一个字符

我有一个应用程序,人们需要使用密码登录.我想只显示输入的最后一个字符,但我似乎得到的只是所有字符点或所有字符都可见.

我试了几件事:

password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

password.setTransformationMethod(PasswordTransformationMethod.getInstance());

password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

并在xml中设置inputtype.

我只测试了一个星系s2,因为那是我办公室目前唯一的安卓设备,所以我不知道问题是否仅适用于我的设备.

编辑:@H_404_11@刚刚从一位同事的HTC Sensation上进行了测试,它确实可以在他的手机上运行,​​但问题仍然是如何在Galaxy S2上获得同样的东西?

这被问到这已经差不多1.5年了:P.但我有同样的要求,并成功地实现了它.将MyTransformation类的对象作为setTransformationMethod中的参数传递,你很高兴:)这是代码.

public class MyTransformation extends PasswordTransformationMethod{

@Override

public CharSequence getTransformation(CharSequence source,View view) {

return new PasswordCharSequence(source);

}

private class PasswordCharSequence implements CharSequence {

private CharSequence mSource;

public PasswordCharSequence(CharSequence source) {

mSource = source; // Store char sequence

}

public char charAt(int index) {

//This is the check which makes sure the last character is shown

if(index != mSource.length()-1)

return '•';

else

return mSource.charAt(index);

}

public int length() {

return mSource.length(); // Return default

}

public CharSequence subSequence(int start,int end) {

return mSource.subSequence(start,end); // Return default

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值