Android EditText не показывает типизированные буквы, используемые для фильтрации ListAdapter ListView



У меня есть LinearLayout с EditText и ListView. Я использую EditText для фильтрации ListView. Фильтрация работает нормально, когда я впервые показываю экран, и мягкая клавиатура автоматически всплывает. Когда я набираю набранные буквы, они не появляются в EditText. Если я нажму на EditText, буквы, которые я набираю, действительно появятся, но не перейдут в фильтр. Это как если бы там было 2 EditText.



Вот мой xml:



<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="6dip"
android:paddingTop="4dip" >

<EditText
android:id="@+id/search_box"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
android:textSize="17dip" />

<ListView
android:id="@+id/beerListViewID"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" >

</ListView>

</LinearLayout>


Вот моя настройка для TextWatcher:



@Override public void onLoadFinished(Loader<ArrayList<BeerRecord>> loader,
ArrayList<BeerRecord> beers) {
// Set the new data in the adapter.
ListView listView = (ListView) getActivity().findViewById(R.id.beerListViewID);

myAdapter = new BeerItemAdapter(getActivity(), R.layout.beerline, beers);

filterText = (EditText) getActivity().findViewById(R.id.search_box);
filterText.addTextChangedListener(filterTextWatcher);

listView.setAdapter(myAdapter);

}


И TextWatcher:



    private TextWatcher filterTextWatcher = new TextWatcher() {

public void afterTextChanged(Editable s) {
}

public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}

public void onTextChanged(CharSequence s, int start, int before,
int count) {
myAdapter.getFilter().filter(s);
}

};


Должен ли я публиковать больше кода? У кого-нибудь есть идея, почему должно быть 2 EditText?



EDIT: когда начинается действие и появляется мягкая клавиатура, я вижу, что видимый EditText не имеет фокуса. Должно быть, я каким-то образом определяю вторую, которая скрыта за первой.



EDIT -- ОТВЕТИЛ:
Я все понял. В методе OnCreate для этого фрагмента у меня было:



    getActivity().setContentView(R.layout.beer_listview);


Я думаю, что это было создание второго взгляда. Когда я это прокомментировал вышла 2-я правка, текст ушел.

525   1  

1 ответ:

Просто повторюсь из моего комментария выше, теперь, когда прошло 8 часов. Я понял, что произошло:

 getActivity().setContentView(R.layout.beer_listview);

Был в моем OnCreate для моего фрагмента,и он помещал другой вид поверх "реального". Я действительно не знаю, почему, но я знаю, что комментирование исправило это. Я думал, что это было что-то вроде этого, и просто искал каждую ссылку, которую я сделал на вид, комментируя по пути.

Если кто-то хочет объяснить, не стесняйтесь!

Comments

    Ничего не найдено.