android EditText密码框,怎么让它只显示密码点,不让它显示最后一位输入的字符? 20
在线等。。。求帮助
谢谢各位了,我终于解决了,原来这是在模拟器里面设置的,和程序无关联的。 展开
布局里加上这一句:
android:inputType="textPassword"就好了。
方法1::
在布局文件中设置文本编辑框属性作字符数限制,android:maxLength="10" 即限制最大输入字符个数为10。
方法2:在代码中使用InputFilter 进行过滤
public class MyActivity extends Activity
{
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (EditText)findViewById(R.id.text);
text .setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
}
}
方法3:利用 TextWatcher 进行监听
继承TextWatcher接口,对输入进行监听
pblic class MaxLengthWatcher implements TextWatcher
{
private int maxLen = 0;
private EditText editText = null;
public MaxLengthWatcher(int maxLen, EditText editText) {
this.maxLen = maxLen;
this.editText = editText;
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
Editable editable = editText.getText();
int len = editable.length();
if(len > maxLen)
{
int selEndIndex = Selection.getSelectionEnd(editable);
String str = editable.toString();
//截取新字符串
String newStr = str.substring(0,maxLen);
editText.setText(newStr);
editable = editText.getText();
//新字符串的长度
int newLen = editable.length();
//旧光标位置超过字符串长度
if(selEndIndex > newLen)
{
selEndIndex = editable.length();
}
//设置新光标所在的位置
Selection.setSelection(editable, selEndIndex);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
}
在activity中为EditText添加监听
public class MyActivity extends Activity {
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (EditText) findViewById(R.id.entry);
//限制为10
text.addTextChangedListener(new MaxLengthWatcher(10, editText));
}
}
没用 每次输入一个字符还是会显示一会儿
android:inputType="textPassword"
没用 每次输入一个字符还是会显示一会儿
正常的不就是这样的么?不然别人怎么知道自己输了啥? 如果你真要一开始就不显示,那就监控edittext内容改变,然后settext成星号吧
其实大多数的手机应用输入密码时都是这个样子的需要延迟一会,让用户确认自己输入是否正确。
推荐你还是别改了,以后用户体验会很差的