たとえば、ホームページ(各デバイスに1つ)のレイアウトが2つある場合、2つのアクティビティを作成する必要がありますか?
いいえ、あなたのレイアウトの2つの異なるバージョン(layout/
とlayout-sw600dp/
内の別で、おそらく1)を持っている場合、システムは自動的にあなたのために正しいものを選択します。
または、どのレイアウトが読み込まれているかを検出して、if/elseブランチで自分のものを実行できるアクティビティを1つだけ持つことはできますか?
これは通常行われていることですが、どこでもif/elseを行う必要はほとんどありません。
あなたのタブレットレイアウトはDrawerLayout
を使用しており、携帯電話のレイアウトは使用しないことに言及しています。システムは、タブレットのレイアウトを選択した、システムがお使いの携帯電話のレイアウトを選択した場合、それはnull
を返しますとき
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer);
if (drawer != null) {
// set up drawer for tablets
}
findViewById()
呼び出しが正常にDrawerLayout
を返します。それはあなたがこのようなコードを書くことができますを意味します。あなたは両方お使いの携帯電話やタブレットのレイアウトに存在している知っているビューがあるかどう
しかし、あなたはちょうどそれを直接使用することができます。
TextView textView = (TextView) findViewById(R.id.text);
textView.setText("hello world");
あなたは、画面のサポートにつき1つの活動を展開する必要はありません。 (タブレット/電話)の場合、Android Operative Systemはデバイスの解像度に合ったXMLを自動的に選択しますが、ビューバインディングで注意する必要があります。つまり、同じビューのビュータイプを尊重する必要があります両方のレイアウトのID名。 –