1

我不明白怎么做,但直到昨天它都运行良好......现在我改变了一些事情并且发生这种情况,每当我在顶部菜单的应用程序的搜索框中输入内容时,我输入的每个字母都会被删除立即地。如果我粘贴一个较长的单词,它的字母会很快被一个一个地删除——我可以从 setOnQueryTextListener 上的回调函数中看到这一点:每次删除一个字母时都会调用该函数,所以如果我粘贴一个包含 5 个字母的单词,即. “你好”,这个功能很快被“你好”、“地狱”、“Hel”、“He”、“H”触发……我的盒子是空的。

我真的想不出有什么理由会发生这种情况。

这就是我实现它的方式。

menu_basic.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/menu_basic_search"
        android:actionViewClass="com.actionbarsherlock.widget.SearchView"
        android:icon="@drawable/react_search"
        android:showAsAction="ifRoom|collapseActionView"
        android:title="@string/description_search"/>

    <item android:id="@+id/menu_basic_menu"
        android:title="@string/description_menu"
        android:icon="@drawable/react_menu"
        android:showAsAction="always" />

</menu>

在我的片段 .java

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.clear();
        inflater.inflate(R.menu.menu_basic, menu);
        (getSherlockActivity()).getSupportActionBar().setHomeButtonEnabled(true);

        SearchManager searchManager = (SearchManager) getSherlockActivity().getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.menu_basic_search).getActionView();
        if (null != searchView )
        {
            searchView.setSearchableInfo(searchManager.getSearchableInfo(getSherlockActivity().getComponentName()));
            searchView.setIconifiedByDefault(false);
        }

        SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() 
        {
            @Override
            public boolean onQueryTextChange(String newText) 
            {
                Log.i("SEARCH newText", newText);
                return true;
            }

            @Override
            public boolean onQueryTextSubmit(String query) 
            {
                Log.i("SEARCH query", query);
                return true;
            }
        };
        searchView.setOnQueryTextListener(queryTextListener);
    }

除此之外,我在我的代码中找不到任何其他对 SearchView 的引用。

知道问题可能出在哪里吗?

4

0 回答 0