0

私はこれで初心者なので、我慢してください。

私のアプリでは、ユーザーの好みに基づいてアプリのテーマを更新したいと考えています。テーマ セクションを含む設定ページがあり、MainActivity のコードは次のとおりです。

@Override
protected void onCreate(Bundle savedInstanceState) {

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    String userTheme = preferences.getString("theme_setting", "Blue");
    if (userTheme.equals("Blue"))
        setTheme(R.style.BlueTheme);
    else if (userTheme.equals("Red"))
        setTheme(R.style.RedTheme);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

    //Initiate buttons
    quadButton = (Button) findViewById(R.id.quadButton);
    sssButton = (Button) findViewById(R.id.sssButton);
    ssaButton = (Button) findViewById(R.id.ssaButton);
    areaButton = (Button) findViewById(R.id.areaButton);
    volumeButton = (Button) findViewById(R.id.volumeButton);
    conversionButton = (Button) findViewById(R.id.conversionButton);

    buttonListeners();
}

@Override
protected void onResume() {

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    String userTheme = preferences.getString("theme_setting", "Blue");
    if (userTheme.equals("Blue"))
        setTheme(R.style.BlueTheme);
    else if (userTheme.equals("Red"))
        setTheme(R.style.RedTheme);
    super.onResume();
    setContentView(R.layout.activity_main);

    //Initiate buttons
    quadButton = (Button) findViewById(R.id.quadButton);
    sssButton = (Button) findViewById(R.id.sssButton);
    ssaButton = (Button) findViewById(R.id.ssaButton);
    areaButton = (Button) findViewById(R.id.areaButton);
    volumeButton = (Button) findViewById(R.id.volumeButton);
    conversionButton = (Button) findViewById(R.id.conversionButton);

    buttonListeners();
}

これは、Up ボタンが押されて設定画面から MainActivity に戻るときに機能しますが、システムの戻るボタンが押されたときには機能しません。私は onResume() メソッドでそれを解決しようとしましたが、実際には実行時に onResume を呼び出すことはないようです。また、Android Studio では、「メソッド onResume() は使用されません」と表示されます。

ここで何がうまくいかないのですか?どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

1

onResume()パラメータを取りません。@Overrideこのような間違いを防ぐために、で注釈を付けることも必要です。

基本的onResume()に、ライフサイクルの一部として呼び出されない新しいメソッドを作成しましたActivity

于 2015-03-04T22:10:26.103 に答える