首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SearchView和ActionbarSherlock

SearchView和ActionbarSherlock
EN

Stack Overflow用户
提问于 2013-10-01 05:54:21
回答 1查看 788关注 0票数 0

我已经在我的actionBar中插入了搜索功能。我可以看到搜索图标,但无法在actionBar中显示搜索对话框。我试过按照别人的建议修改v14 abs_themes文件,但没有成功。我的xml菜单如下:

代码语言:javascript
复制
<item
    android:id="@+id/search"
    android:title="search sites"
    android:icon="@drawable/action_search"
    android:showAsAction="collapseActionView|always"
    android:actionViewClass="com.ActionbarSherlock.widget.SearchView" >
</item>
<item
    android:id="@+id/grid"
    android:icon="@drawable/images_on"
    android:showAsAction="ifRoom"
    android:title="Grid">
</item>

在onCreateOptionsMenu中,我插入了:

代码语言:javascript
复制
public boolean onCreateOptionsMenu(Menu menu) {

    this.menu = menu;

    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.sites_actionbar, menu);

    // Associate searchable configuration with the SearchView
    SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView)menu.findItem(R.id.search).getActionView();


    if (searchView != null) {

        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconifiedByDefault(true);
        searchView.setSubmitButtonEnabled(true);

        searchView.setOnQueryTextListener(this);

    }

我一直在关注ClassNotFoundException:

代码语言:javascript
复制
09-30 17:39:06.992: W/MenuInflater(17111): Cannot instantiate class: com.ActionbarSherlock.widget.SearchView
09-30 17:39:06.992: W/MenuInflater(17111): java.lang.ClassNotFoundException: Didn't find class "com.ActionbarSherlock.widget.SearchView" on path: /data/app/com.mcgarrybowen.CPC-1.apk
09-30 17:39:06.992: W/MenuInflater(17111):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
09-30 17:39:06.992: W/MenuInflater(17111):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-30 17:39:06.992: W/MenuInflater(17111):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.view.MenuInflater$MenuState.newInstance(MenuInflater.java:486)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.view.MenuInflater$MenuState.setItem(MenuInflater.java:447)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.view.MenuInflater$MenuState.addItem(MenuInflater.java:468)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.view.MenuInflater.parseMenu(MenuInflater.java:190)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.view.MenuInflater.inflate(MenuInflater.java:112)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.mcgarrybowen.CPC.SiteCategoryListActivity.onCreateOptionsMenu(SiteCategoryListActivity.java:67)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:44)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:560)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:64)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:164)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:464)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:851)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:258)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.view.Choreographer.doCallbacks(Choreographer.java:562)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.view.Choreographer.doFrame(Choreographer.java:531)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.os.Handler.handleCallback(Handler.java:725)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.os.Handler.dispatchMessage(Handler.java:92)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.os.Looper.loop(Looper.java:137)
09-30 17:39:06.992: W/MenuInflater(17111):  at android.app.ActivityThread.main(ActivityThread.java:5328)
09-30 17:39:06.992: W/MenuInflater(17111):  at java.lang.reflect.Method.invokeNative(Native Method)
09-30 17:39:06.992: W/MenuInflater(17111):  at java.lang.reflect.Method.invoke(Method.java:511)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
09-30 17:39:06.992: W/MenuInflater(17111):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
09-30 17:39:06.992: W/MenuInflater(17111):  at dalvik.system.NativeStart.main(Native Method)
EN

回答 1

Stack Overflow用户

发布于 2013-10-01 06:15:13

类名区分大小写-您需要使用

代码语言:javascript
复制
android:actionViewClass="com.actionbarsherlock.widget.SearchView"

请注意actionbarsherlock中缺少大写字母。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19104542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档