我不明白怎么做,但直到昨天工作都很好......现在我改变了一些事情并发生了,每当我在顶部菜单上的应用程序的搜索框中输入内容时,每个字母我类型立即被删除。如果我粘贴一个较长的单词,它的字母会被逐个快速删除 - 我可以在setOnQueryTextListener上的回调函数中看到这个:每次删除一个字母时都会调用该函数,所以如果我粘贴一个带有5个字母的单词,即。 “你好”,快速触发“Hello”,“Hell”,“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的引用。
知道问题出在哪里?