ActionBar Search + Fragment + SQLite DB - 无效

时间:2014-10-22 06:55:51

标签: android android-actionbar

我正在尝试向我的Listview添加搜索功能,该功能由Cursor Adapter支持。我的搜索位于包含此列表视图的片段内。我正在关注Here的教程。但它似乎没有起作用。以前我使用自动完成编辑文本在此列表上实现了搜索,并且使用以下代码工作正常:

SEARCH.addTextChangedListener(new TextWatcher() {
            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
            }

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

            public void afterTextChanged(Editable s) {
                CursorAdapter filterAdapter = (CursorAdapter) Cur;
                filterAdapter.getFilter().filter(s.toString());
            }
        });

        Cur.setFilterQueryProvider(new FilterQueryProvider() {
            public Cursor runQuery(CharSequence constraint) {
                return dbHelper.getDirectoryList(constraint);
            }
        });

现在我的代码如下(在这个特定片段内):

班级宣言:

public class FragmentTab1 extends Fragment implements OnQueryTextListener{ 

我的OnCreateOptionsMenu:

public boolean onCreateOptionsMenu(Menu menu) {

        getActivity().getMenuInflater().inflate(R.menu.main, menu);
        SearchManager searchManager = (SearchManager) getActivity().getSystemService( Context.SEARCH_SERVICE );
        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();

        searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
        searchView.setSubmitButtonEnabled(true);
        searchView.setOnQueryTextListener(this);

        return true;
    }

我的onQueryTextSubmit:

 @Override
    public boolean onQueryTextChange(String newText){
        // this is your adapter that will be filtered
        if (TextUtils.isEmpty(newText)){
            lv.clearTextFilter();
        }
        else{
            lv.setFilterText(newText.toString());
        }

        return true;
    }


    @Override
    public boolean onQueryTextSubmit(String query) {
        // TODO Auto-generated method stub
        return false;
    }

然而,这似乎没有用,我在这里缺少什么?

0 个答案:

没有答案