首页 文章

Android EditText未显示用于过滤ListAdapter ListView的类型字母

提问于
浏览
2

我有 LinearLayoutEditTextListView . 我正在使用 EditText 过滤 ListView . 当我第一次显示屏幕并且软键盘自动弹出时,过滤工作正常 . 当我键入时,键入的字母不会显示在 EditText 中 . 如果我点击 EditText ,我输入的字母会显示出来,但是好像有 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

编辑:当活动开始并弹出软键盘时,我可以看到可查看的EditText没有焦点 . 我必须以某种方式定义隐藏在第一个背后的第二个 .

编辑 - 答案:我明白了 . 在这个片段的OnCreate方法中,我有:

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

我想这是在创造第二种观点 . 当我评论它时,第二个EditText消失了 .

1 回答

  • 0

    刚从我上面的评论中重申,现在已经过去了8个小时 . 我弄清楚发生了什么:

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

    在我的OnCreate中为我的片段,它在另一个视图上放置了“真实”的视图 . 我真的不知道为什么,但我知道评论解决了 . 我认为它就是这样的东西,只是搜索了我对视图的每一个引用,随着我的去向发表评论 .

    如果有人想解释,请随意!

相关问题