1

ActivityGroup 内に 2 つのアクティビティがあります。1 つは「ProvinceActivity」で、もう 1 つは「CityActivity」です。そうコード:

public class CityManagerActivity extends ActivityGroup {
    View v1 = getLocalActivityManager().startActivity(
                "tab1",
                new Intent(this, ProvinceActivity.class)
                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                .getDecorView();
    replaceView(v1);
}

しかし、「tab1」で検索キーを押してデフォルトで検索できる場合、検索でエラーが発生します:

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

2 番目の検索は機能します。その方法を教えてください。

4

2 に答える 2

0

他の人にとっては、 true を返すだけで、アプリはユーザーが予期しない動作を示していると思います。これは、何らかの検索を表示する必要があり、true を返すことでこれがオーバーライドされるためです。

記事http://www.app-solut.com/blog/2011/10/unexpected-behavior-when-working-with-nested-tabhosts/は、デフォルトを変更せずに TabHost でこの問題を解決する良い方法を示しています行動。

于 2011-10-21T14:31:47.050 に答える
0

同じ問題があります。私はこれを使用し、問題を解決します。

@Override
public boolean onSearchRequested() {
    return true;
}
于 2011-08-25T09:15:16.410 に答える