【问题标题】:Set max length for EditText设置 EditText 的最大长度
【发布时间】:2016-09-07 01:30:25
【问题描述】:

我想在 EditText 中设置 1 个字符的长度,但只是在一部分条件下。有一种方法可以通过 XML 设置最大长度,但这将应用于整个条件。如何以编程方式设置最大长度?

【问题讨论】:

  • 看起来这个答案应该对你有所帮助:stackoverflow.com/a/24749916/5527154
  • 对人没有帮助
  • 为什么android没有为此做一个准备好的函数
  • 请发布您的代码
  • 我已从问题中删除了不相关的 java 标签,请仅使用有效标签。

标签: android maxlength


【解决方案1】:
public void setEditTextMaxLength(EditText editText, int length) {
      InputFilter[] FilterArray = new InputFilter[1];
      FilterArray[0] = new InputFilter.LengthFilter(length);
      editText.setFilters(FilterArray);
  }

【讨论】:

  • 如何调用它我看到了这个函数,我给了它 EditText id 和长度,但什么也没发生
【解决方案2】:

您可以将其添加到您的 XML 中:

android:maxLength="10"

或以编程方式:

EditText editText = new EditText(this);
int maxLength = 3;    
editText.setFilters(new InputFilter[] {
    new InputFilter.LengthFilter(maxLength)
});

【讨论】:

  • 您将第一个选项放在 .xml 文件中(活动布局)。或者您将第二个选项放在活动文件中 setContentView(R.layout.your_activity); 之后它将是这样的:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_activity); EditText editText = (EditText)findViewById(R.id.your_edit_text); int maxLength = 3; editText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(maxLength) }); }
【解决方案3】:

在 Kotlin 中,这个扩展函数很方便:

fun EditText.setMaxLength(maxLength: Int) {
    filters = arrayOf(InputFilter.LengthFilter(maxLength))
}

【讨论】:

    【解决方案4】:
    edtTime.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(4) });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-01
      • 2012-09-27
      • 2012-08-18
      • 2015-07-09
      • 2010-09-30
      • 1970-01-01
      • 2015-02-16
      相关资源
      最近更新 更多