1
public class MyPreferences extends PreferenceActivity {

    @Override
    public void onCreate( Bundle savedInstanceState ) {
        super.onCreate( savedInstanceState );
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        requestWindowFeature(Window.FEATURE_PROGRESS);
        ...
        setProgressBarIndeterminateVisibility(true);
        setProgressBarVisibility(true);
    }
}

最初の requestWindowFeature() 呼び出しで、これがスローされます。

    ERROR/AndroidRuntime(16406): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content

明らかに、この時点ではコンテンツを追加していません。PreferenceActivity は、super.onCreate() 中に何らかの状態を変更したため、子供はそれが変更されたと思いますか? または、使用すべきマニフェスト属性がありますか?

また、xml を使用せずに、つまり完全にプログラムでこれらの設定を作成していることも指摘しておく必要がありますが、コード スニペットは、どちらの場合でも問題が発生するように見えることを示すのに十分です。

4

1 に答える 1

4

問題は、requestWindowFeature() の前に super.onCreate() があることです。これは PreferenceActivity であるため、onCreate() で作成される画面上の標準項目がいくつかあります。

onCreate() を requestWindowFeature() の下に移動するだけです。

于 2011-10-11T20:40:05.683 に答える