Android 使用ActionBarSherlock的SearchView上的ClassCastException
我的应用程序上有一个searchview。我可以在搜索框中输入,但是,如果我按search,应用程序就会崩溃。上面说Android 使用ActionBarSherlock的SearchView上的ClassCastException,android,actionbarsherlock,classcastexception,searchview,Android,Actionbarsherlock,Classcastexception,Searchview,我的应用程序上有一个searchview。我可以在搜索框中输入,但是,如果我按search,应用程序就会崩溃。上面说 11-25 00:57:09.446:E/AndroidRuntime(1914):java.lang.ClassCastException:com.actionbarsherlock.widget.SearchView不能强制转换为android.widget.SearchView 但是,我在菜单文件中声明的内容是正确的 <menu xmlns:android="http
11-25 00:57:09.446:E/AndroidRuntime(1914):java.lang.ClassCastException:com.actionbarsherlock.widget.SearchView不能强制转换为android.widget.SearchView
但是,我在菜单文件中声明的内容是正确的
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/search"
android:title="Quezon City Guide"
android:icon="@drawable/ic_action_search"
android:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="com.actionbarsherlock.widget.SearchView" />
</menu>
我不知道我做错了什么
这是我的进口货
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;
import com.actionbarsherlock.widget.SearchView;
import com.actionbarsherlock.app.SherlockActivity;
有人能帮忙吗。谢谢 似乎您正在尝试将安卓
操作栏的搜索视图
映射到操作栏夏洛克的搜索视图
。那是你的错误
private SearchView mSearchView = null;
在OnCreateOptionMenu中使用以下代码
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
MenuItem searchItem = menu.findItem(R.id.search);
mSearchView = (SearchView) searchItem.getActionView();
setupSearchView(searchItem);
return true;
}
private void setupSearchView(MenuItem searchItem) {
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (searchManager != null) {
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
// mSearchView.setSearchableInfo(info);
}
mSearchView.setOnQueryTextListener(this);
}
尝试在menu.xml文件中使用android.widget.SearchView很可能您在导入语句中引用的是默认的android小部件,而不是Sherlock搜索小部件:
SearchView searchView =
(SearchView) menu.findItem(R.id.search).getActionView();
在运行项目之前,请尝试清理。这对我总是有帮助错误本身说明了错误所在。@Miguel,你在选项项selected()中有实现吗?
?你清理了项目吗?然后运行程序?是的。还是不行,你什么意思?很抱歉,我还是个新手。这有点难以解释,但我会尽力的。您的错误清楚地说明了搜索小部件包的名称。似乎您正试图将action bar sherlock的搜索小部件转换为android中的本机搜索小部件。确保搜索小部件的类型相同,则不会出现错误。
SearchView searchView =
(SearchView) menu.findItem(R.id.search).getActionView();