2016-04-10 5 views
1

У меня есть AutoCompleteTextView, и я хочу установить на него фильтр, проблема, с которой я сталкиваюсь, - это когда я нахожу что-то, что только позволит мне ввести 1 символ в текстовое поле. если я удалю textView.setFilters из кода, он отлично работает, у меня просто нет фильтров. Я также пробовал android:textAllCaps="true" в моем XML-файле, и он не работает. спасибо, спасибо.Фильтр AutoCompleteTextView не работает должным образом

Мой код:

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.textfield); 
    String[] MyArray = getResources().getStringArray(R.array.myarray); 
    ArrayAdapter<String> adapter = 
      new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, MyArray); 
    textView.setFilters(new InputFilter[]{new InputFilter.AllCaps(), new InputFilter.LengthFilter(40)}); 
    textView.setAdapter(adapter); 

Xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".myactivity"> 

    <AutoCompleteTextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/textfield" 
     android:hint="Search..."/> 

    <Button 
     android:id="@+id/btn" 
     android:onClick="buttonClickHandler" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Do something" 
     android:layout_toRightOf="@+id/textfield"/> 
</RelativeLayout> 
+0

опубликовать ваш XML слишком –

+0

@VivekMishra добавил его к вопрос – Greg432

+0

Я думаю, что это ваш преступник 'new InputFilter.AllCaps()'. Я понимаю, что этот фильтр не позволит вам вводить строчные буквы. Попробуйте ввести буквы букв в текстовое поле –

ответ

0

С помощью поста @ pskink, я понял это

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.textfield); 
String[] MyArray = getResources().getStringArray(R.array.myarray); 
ArrayAdapter<String> adapter = 
     new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, MyArray); 
     textView.setThreshold(1); 
     InputFilter[] filters = { 
      new InputFilter.AllCaps(), 
      new InputFilter.LengthFilter(40),}; 
    textView.setFilters(filters); 
textView.setAdapter(adapter); 
Смежные вопросы