android 中如何限制 EditText 最大输入字符数
1.可以在布局文件中使用maxLength属性
android:maxLength=“50”2.代码中限制
editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 50 )});
希望能帮到你,还望采纳
在代码中使用InputFilter 进行过滤。
//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大输入字符数为20。
[java] view plaincopyprint?
01. public class TextEditActivity extends Activity {
02. /** Called when the activity is first created. */
03. @Override
04. public void onCreate(Bundle savedInstanceState) {
05. super.onCreate(savedInstanceState);
06. setContentView(R.layout.main);
07. EditText editText = (EditText)findViewById(R.id.entry);
08. editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
09. }}public class TextEditActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);setContentView(R.layout.main);
EditText editText = (EditText)findViewById(R.id.entry);
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});}}
在 xml 文件中设置文本编辑框属性作字符数限制
如:android:maxLength="10" 即限制最大输入字符个数为10
方法二:
在代码中使用InputFilter 进行过滤
//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大输入字符数为20
[java] view plaincopyprint?
01.public class TextEditActivity extends Activity {
02. /** Called when the activity is first created. */
03. @Override
04. public void onCreate(Bundle savedInstanceState) {
05. super.onCreate(savedInstanceState);
06. setContentView(R.layout.main);
07.
08. EditText editText = (EditText)findViewById(R.id.entry);
09. editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
10. }
11.}
public class TextEditActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText)findViewById(R.id.entry);
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
}
}
方法三:
利用 TextWatcher 进行监听
[java] view plaincopyprint?
01.package cie.textEdit;
02.
03.import android.text.Editable;
04.import android.text.Selection;
05.import android.text.TextWatcher;
06.import android.widget.EditText;
07.
08./*
09. * 监听输入内容是否超出最大长度,并设置光标位置
10. * */
11.public class MaxLengthWatcher implements TextWatcher {
12.
13. private int maxLen = 0;
14. private EditText editText = null;
15.
16.
17. public MaxLengthWatcher(int maxLen, EditText editText) {
18. this.maxLen = maxLen;
19. this.editText = editText;
20. }
21.
22. public void afterTextChanged(Editable arg0) {
23. // TODO Auto-generated method stub
24.
25. }
26.
27. public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
28. int arg3) {
29. // TODO Auto-generated method stub
30.
31. }
32.
33. public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
34. // TODO Auto-generated method stub
35. Editable editable = editText.getText();
36. int len = editable.length();
37.
38. if(len > maxLen)
39. {
40. int selEndIndex = Selection.getSelectionEnd(editable);
41. String str = editable.toString();
42. //截取新字符串
43. String newStr = str.substring(0,maxLen);
44. editText.setText(newStr);
45. editable = editText.getText();
46.
47. //新字符串的长度
48. int newLen = editable.length();
49. //旧光标位置超过字符串长度
50. if(selEndIndex > newLen)
51. {
52. selEndIndex = editable.length();
53. }
54. //设置新光标所在的位置
55. Selection.setSelection(editable, selEndIndex);
56.
57. }
58. }
59.
60.}
package cie.textEdit;
import android.text.Editable;
import android.text.Selection;
import android.text.TextWatcher;
import android.widget.EditText;
/*
* 监听输入内容是否超出最大长度,并设置光标位置
* */
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 afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// 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);
}
}
}
对应的 activity 部分的调用为:
[java] view plaincopyprint?
01.package cie.textEdit;
02.
03.import android.app.Activity;
04.import android.os.Bundle;
05.import android.text.InputFilter;
06.import android.widget.EditText;
07.
08.public class TextEditActivity extends Activity {
09. /** Called when the activity is first created. */
10. @Override
11. public void onCreate(Bundle savedInstanceState) {
12. super.onCreate(savedInstanceState);
13. setContentView(R.layout.main);
14.
15. EditText editText = (EditText) findViewById(R.id.entry);
16. editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
17.
18. }
19.}
package cie.textEdit;
import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.widget.EditText;
public class TextEditActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText) findViewById(R.id.entry);
editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
}
}
限制输入字符数为10个
main.xml 文件
[html] view plaincopyprint?
01.<?xml version="1.0" encoding="utf-8"?>
02.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03. android:layout_width="fill_parent"
04. android:layout_height="fill_parent">
05. <TextView
06. android:id="@+id/label"
07. android:layout_width="fill_parent"
08. android:layout_height="wrap_content"
09. android:text="Type here:"/>
10. <EditText
11. android:id="@+id/entry"
12. android:singleLine="true"
13. android:layout_width="fill_parent"
14. android:layout_height="wrap_content"
15. android:background="@android:drawable/editbox_background"
16. android:layout_below="@id/label"/>
17. <Button
18. android:id="@+id/ok"
19. android:layout_width="wrap_content"
20. android:layout_height="wrap_content"
21. android:layout_below="@id/entry"
22. android:layout_alignParentRight="true"
23. android:layout_marginLeft="10dip"
24. android:text="OK" />
25. <Button
26. android:layout_width="wrap_content"
27. android:layout_height="wrap_content"
28. android:layout_toLeftOf="@id/ok"
29. android:layout_alignTop="@id/ok"
30. android:text="Cancel" />
31.</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:"/>
<EditText
android:id="@+id/entry"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
在代码中使用InputFilter 进行过滤。
//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大输入字符数为20。
android:maxEms=""
android:maxLength=""
试试这两个属性,如果不行的话,那就只有对edittext进行监听了,超出你限制字符数的你就给他去掉,然后提示就好了
尉迟妻爱乐: 方法一:在 xml 文件中设置文本编辑框属性作字符数限制,如Android:maxLength="20" 即限制最大输入字符个数为20;方法二:在代码中使用InputFilter 进行过滤 editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大输入字符数为20
开原市13276618733: 如何在程序中设置 Android 的 IP,DNS 和网关?
尉迟妻爱乐: 一般情况下,这些数据是不需要手动配置的,在连接网络时都是自动获取的,自己手动配置,有可能出现几台电脑IP地址相同的情况,这样会造成无法上网.如果要手动配置,步骤如下: 1、打开控制面板; 2、点击网络和 Internet-网络和共享中心-更改适配器设置; 3、找到当前使用的网络适配器,右击选择属性; 4、选择internet协议版本4,并双击; 5、然后勾选使用下面的IP地址和使用下面的DNS服务器地址,然后就可以手动配置了.
开原市13276618733: Android studio中IDE窗口怎么显示或者隐藏 - ?
尉迟妻爱乐: 1、打开android studio的窗口的菜单栏中的辅助工具. 2、进行点击android studio菜单中的view的选项,然后弹出了下拉菜单中进行选择为“Toolbar”的选项.3、这样在android studio的菜单栏的相关的工具不显示在.4、在android studio工具的边框中显示的为工具条.5、进行点击菜单view的选项,弹出了下拉菜单中进行选择为"ToolButtons"的选项.6、在android studio看到的工具条被隐藏.
开原市13276618733: android中如何用正则设置内容限于中英文文字及标点、数字格式 - ?
尉迟妻爱乐: android:digits="1234567890.+-*/%\n()ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 中文貌似没办法限制……
开原市13276618733: android中如何 限制按钮次数onClick? - ?
尉迟妻爱乐: int a = 0;public void onClick(View v){if(a
开原市13276618733: android Edittext怎么限制同一个字符多次输入,就是限制用户多次输入同一个字符 - ?
尉迟妻爱乐: 用textwatcher可以监听当前输入的字符,跟前面的比较,然后作处理就可以了
开原市13276618733: android edittext怎样禁止特殊字符 - ?
尉迟妻爱乐: 添加TextWatcher监听进行过滤;或者在xml中指定 digits 属性;具体怎么做就不说了,自行百度.
开原市13276618733: 如何设置android edittext不可输入 - ?
尉迟妻爱乐: 设置edittext不可编辑就可以了, 1、在布局文件中EditText下,写如下代码:android:enabled="false" 2、在代码中可以这样写:EditText et = (EditText) findViewById(R.id.pwd);et.setEnabled(false);
开原市13276618733: android EditText控件怎么禁止输入内容 - ?
尉迟妻爱乐: 代码中:EditText et = new EditText(mContext);et.setEnabled(false);布局文件中:android:enabled="false"
开原市13276618733: android EditText密码框,怎么让它只显示密码点,不显示最后一位输入的字符? - ?
尉迟妻爱乐: 布局里加上这一句:android:inputType="textPassword"就好了.方法1::在布局文件中设置文本编辑框属性作字符数限制,android:maxLength="10" 即限制最大输入字符个数为10.方法2:在代码中使用InputFilter 进行过滤 public class ...