1

私は次のコードを持っています。ユーザーがメニューから「設定」を選択すると、設定ビューが作成されることになっています。これは行われますが、ユーザーが「設定」を選択すると、背景が透明であるかのように、設定メニューがデフォルトのビューの上に表示されます。設定メニューが作成されたときの様子を含めました。

アプリケーション画像 ご覧のとおり、画面中央の「大きなテキスト」を除いて、デフォルトのビューは空白ですが、設定メニューはその上に表示されます。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.menu_settings:
             getFragmentManager().beginTransaction()
             .replace(android.R.id.content, new SettingsMenu())
             .addToBackStack(null)
             .commit();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

これを修正するにはどうすればよいですか?

4

1 に答える 1

3

PreferenceFragment通常、アクティビティに直接追加するのではなく、新しいアクティビティを開始する必要があります。

replace()または、既存のUI(「大きなテキスト」)を、呼び出しによって置き換えられるフラグメントに配置する必要があります。現状では、既存のUIはフラグメントに含まれていないか、少なくともとして識別されているUIには含まれていないように見えますandroid.R.id.content

于 2012-12-29T23:32:25.977 に答える