因此,我的应用程序中有一个默认的可搜索活动,如果我在simples activities中按搜索按钮,它就会工作。但当我在一个标签页中,内容是一个活动组,而不是一个活动,应用程序崩溃。

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)
...

即使我在活动组中添加了此代码,我仍会崩溃:
@Override
  public boolean onSearchRequested() {return false;}

最佳答案

嗨,我发现你的解决方案不起作用。但这让我思考。只有当TabHost在tabhost中时才会发生这种情况。所以我在最内部的TabHost中放置了一个调试器,并注意到onSearchRequest从未被调用。但内部的活动确实如此。所以我把这个加到了内部活动中

@Override
    public boolean onSearchRequested() {
        if (getParent() instanceof TabActivity) {
            return getParent().onSearchRequested();
        } else {
            return super.onSearchRequested();
        }
    }

现在它开始工作了。

关于android - ActivityGroup和SearchDialog,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3523324/

10-11 22:16
查看更多