2016-05-15 6 views
0

PreferenceActivityを実装して、ユーザーがアプリケーションのテーマを変更できるようにしました。その設定のスイッチが反転すると、最初は何も起こりません。Upボタンを押したときに実行されるメソッド

Up buttonが押されると、私は親アクティビティに持ち込まれ、テーマをリロードして新しいテーマを使用します。しかし、私がまだSettingsActivityにいて、Backボタンを押すと、私はMainActivityに戻りますが、新しいテーマは適用されません。その場合、MainActivityonCreate()をリロードしないと思います。

は私だけそのSettingsActivity内にoverride the Backボタンの動作を希望し、どのように私は知っているが、私は振る舞いを押しアップボタンを模倣するために実行するためにどのような方法を知りません。

アイデア?

+0

「上のボタン」とはどういう意味ですか?あなたが追加したカスタムボタンですか? – AkashBhave

+0

ホームボタンの代わりにある上矢印です。押されると、親アクティビティに移動します。 – iBobb

答えて

1

親のアクティビティが何かを制御している場合は、戻るボタンの押下を無効にするだけです。あなたはそうすることができます:

@Override 
public void onBackPressed() { 
    // Replace "ParentActivity.class" with the name of your parent activity 
    Intent parentIntent = new Intent(getApplicationContext(), ParentActivity.class); 
    startActivity(parentIntent); 
} 

上記のコードは、戻るボタンを無効にして、必要な結果を与える必要があります。

+0

haha​​ wowありがとう、私はそれが簡単かもしれないことを気付かなかった...ちょっとした明快な説明、いつfinish()を使うの? startActivityと一緒に?この後ろに実行中のアクティビティがある場合は、finish()のみを使用しますか? – iBobb

+1

それは助けてよかった!あなたの質問に答えるために、彼は 'finish()'アクティビティは基本的にあなたのIntentが行っているアクティビティの 'onDestroy()'メソッドを呼び出します。だから、あなたは本当に終わりを使う必要はありません。なぜなら、それは単に活動を止めるからです。 – AkashBhave

+0

残念ながら、これは厄介なバグをもたらしました。 MainActivityからSettingsに移動し、Backボタンを押すと、MainActivityが再び開始されます。私が戻るボタンを押すと、もう一度設定に行きます。戻るボタン>メイン画面。戻るボタン>設定画面...このループにはまっています。 – iBobb

関連する問題