Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用ActionBarSherlock的SearchView上的ClassCastException_Android_Actionbarsherlock_Classcastexception_Searchview - Fatal编程技术网

Android 使用ActionBarSherlock的SearchView上的ClassCastException

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

我的应用程序上有一个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://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();