我不明白怎么做,但直到昨天它都运行良好......现在我改变了一些事情并且发生这种情况,每当我在顶部菜单的应用程序的搜索框中输入内容时,我输入的每个字母都会被删除立即地。如果我粘贴一个较长的单词,它的字母会很快被一个一个地删除——我可以从 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 的引用。
知道问题可能出在哪里吗?