android 中如何限制 EditText 最大输入字符数
2015-12-06 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
方法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接口,对输入进行监听
public 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));
}
}
展开全部
<EditText
android:id="@+id/password_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:maxLength="32"
android:ems="10"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:textSize="22px" />
其中 android:maxLength="32" 就是限制最大输入长度。
android:id="@+id/password_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:maxLength="32"
android:ems="10"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:textSize="22px" />
其中 android:maxLength="32" 就是限制最大输入长度。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
xml里配置maxLength属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询