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

ActivityGroup和SearchDialog
EN

Stack Overflow用户
提问于 2010-08-19 23:22:54
回答 2查看 1.4K关注 0票数 2

因此,我的应用程序中有一个默认的可搜索活动,如果我在简单活动中按下搜索按钮,它就会起作用。但是当我在一个标签页上,它的内容是一个ActivityGroup,而不是一个活动,应用程序就崩溃了。

代码语言:javascript
复制
08-19 17:18:23.438: ERROR/AndroidRuntime(9078): Uncaught handler: thread main exiting due to uncaught exception
08-19 17:18:23.458: ERROR/AndroidRuntime(9078): java.lang.IllegalArgumentException: no ident
08-19 17:18:23.458: ERROR/AndroidRuntime(9078):     at android.app.Activity.ensureSearchManager(Activity.java:3499)
08-19 17:18:23.458: ERROR/AndroidRuntime(9078):     at android.app.Activity.startSearch(Activity.java:2648)
08-19 17:18:23.458: ERROR/AndroidRuntime(9078):     at android.app.Activity.onSearchRequested(Activity.java:2612)
...

即使我将这段代码添加到我的activityGroup中,我仍然会崩溃:

代码语言:javascript
复制
@Override
  public boolean onSearchRequested() {return false;}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-25 02:03:55

好的,很抱歉我没有早点回答。

所以,是的,问题已经解决了,我认为它来自ActivityGroup,onSearchRequested()没有被覆盖,但无论如何都接受了事件。

所以解决方案是这样的:

代码语言:javascript
复制
@Override
public boolean onSearchRequested() {
    return mLocalActivityManager.getCurrentActivity().onSearchRequested();
}

mLocalActivityManager是启动不同活动的LocalActivityManager ...

然后,您必须覆盖组中显示的每个活动中的onSearchRequested(),如果您不需要搜索对话框,则最终只返回false。

票数 2
EN

Stack Overflow用户

发布于 2011-01-12 23:18:37

您好,我发现您的解决方案不起作用。但这让我开始思考。只有当TabHost中有一个TabHost时,才会发生这种情况。因此,我在最内部的TabHost中放置了一个调试器,并注意到onSearchRequest从未被调用过。但是TabHost内部的活动做到了这一点。因此,我将此添加到内部活动中

代码语言:javascript
复制
@Override
    public boolean onSearchRequested() {
        if (getParent() instanceof TabActivity) {
            return getParent().onSearchRequested();
        } else {
            return super.onSearchRequested();
        }
    }

现在它起作用了。

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

https://stackoverflow.com/questions/3523324

复制
相关文章

相似问题

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