android 中如何限制 EditText 最大输入字符数

作者&投稿:泰庞 (若有异议请与网页底部的电邮联系)
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进行监听了,超出你限制字符数的你就给他去掉,然后提示就好了


开原市13276618733: android 中如何限制 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 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网