【问题标题】:How to limit text INPUT length, but not the length itself?如何限制文本输入长度,而不是长度本身?
【发布时间】:2018-12-05 17:08:55
【问题描述】:

我正在使用AutoCompleteTextView,我的目标是让用户只输入 4 个符号,然后从下拉列表中选择一个项目。

【问题讨论】:

  • 在 AutoCompleteTextView xml 添加android:maxLength="4"
  • 它使长度copability包含不超过4个符号。我需要AutoCompleteTextView 能力包含 255 个符号,但用户只能输入 4 个

标签: android input dropdown autocompletetextview maxlength


【解决方案1】:

您可以使用setFilters() 以编程方式限制长度

 ArrayAdapter<String> My_arr_adapter= new ArrayAdapter<String>(getContext(),android.R.layout.simple_dropdown_item_1line,items);
        autoCompleteTextView.setThreshold(2);
        autoCompleteTextView.setAdapter(My_arr_adapter);
        autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
                autoCompleteTextView.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(255) });
                 autoCompleteTextView.setText(     (String)arg0.getItemAtPosition(arg2));
                autoCompleteTextView.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(4) });



            }
        });
        autoCompleteTextView.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
             if (charSequence.length()==4){
                 autoCompleteTextView.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(4) });

             }
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

希望对你有帮助

【讨论】:

  • 不,它仍然使autoCompleteTextView 能够包含 4 个符号
猜你喜欢
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多