因此,我的应用程序中有一个默认的可搜索活动,如果我在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/