2 つの異なるレイアウトを表示できるアクティビティがあります。どちらのレイアウトも事前に定義されています (XML)。基本的には条件を満たせばレイアウトAが表示されるはずです。条件が満たされない場合、レイアウト B が表示されます。
レイアウト A は、単純化したリニア レイアウトです。いわば、これが私のメインの「フォーム」です。レイアウト B は単純な相対レイアウトです。一部のデータをダウンロードできるようになるまでのプレースホルダーです。データがダウンロードされて通知が送信されたら、レイアウト B を削除してレイアウト A を表示したいと考えています。
私のinvalidate()
メソッドでレイアウト BのonResume()
メソッドを呼び出してみましたが、うまくいきActivity
ません。
(1)レイアウトを「正しく」切り替える場所、および(2)レイアウトを表示するにはどうすればよいか、どのアプローチをとるべきかわかりません。条件が満たされたときにレイアウト A をインフレートする必要があると想定していますが、それについて 100% 確信があるわけではありません。
編集:私のonCreate()
方法を切り取った:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutA); // will happen 99% of the time
...
if (!dbHelper.tableIsPopulated()) {
setContentView(R.layout.layoutB); // show placeholder bc no data exists
getData();
}
}