2

レイアウトインフレータを介して、メインアクティビティのonCreate()メソッドにレイアウトをロードします。ユーザーがアプリの設定で設定できる代替レイアウトを提供したいと思います。

ユーザーがメインアクティビティに戻る前に設定を変更したときに、現在のビューを無効にして、設定コードの新しいレイアウトを膨らませるだけの問題ですか?onCreateまたは、設定されたレイアウトを膨らませるためにアクティビティにifステートメントを追加する必要があるため、設定を変更した後にユーザーにアプリを再起動する必要がありますか?

ありがとう

4

2 に答える 2

0

ユーザーがメインアクティビティから設定アクティビティに移動すると、メインアクティビティはonPause()ライフサイクルメソッドに入り、アクティビティはバックグラウンドになります。あなたは主な活動への参照を失います。共有設定に変更が加えられ、ユーザーが戻るボタンを押すと、メインアクティビティが前面に表示されます。条件ステートメントを追加してonResume()、ユーザーが新しいレイアウトを選択したかどうかを確認できます。

アクティビティのレイアウト全体を更新しようとするのではなく、アクティビティのビューを無効にしていると思います(これは、要件に一致する条件付きステートメントを使用して、新しいレイアウトをsetContentView()に渡すことで実行できます)。onResume()

于 2013-01-22T11:38:29.210 に答える
0

setContentViewを使用してonCreateで実行する必要があります...つまり、アドホックで実行することはできず、アクティビティを終了して再起動する必要があります。

フラグメントを使用してコンテンツを提供し、単にそれらを交換するのがより良い方法です。

于 2013-02-02T03:53:23.240 に答える