私はAndroidの初心者です。アプリのページごとにアクティビティ クラスを作成する必要がありますか? そうでない場合、新しいページを画面に表示するにはどうすればよいですか? これはlayout inflater
良い選択ですか?
ありがとうございました。
私はAndroidの初心者です。アプリのページごとにアクティビティ クラスを作成する必要がありますか? そうでない場合、新しいページを画面に表示するにはどうすればよいですか? これはlayout inflater
良い選択ですか?
ありがとうございました。
たとえば、質問を含むリスト ビューがあるとします。それらのいずれかをクリックすると、別のページで答えが表示されます。これは、多くのアクティビティクラスを意味します。それから私は別の解決策を探しています。
いいえ、これには別のアクティビティは必要ありません。「回答アクティビティ」を動的にすることができます。どの ListView アイテムがクリックされたかに応じて、データを変更できます。これがあなたの問題に対する簡単な解決策です。新しい int 変数を作成し、クリックされた ListView 項目に応じて変更します。インデックス 0 の項目がクリックされた場合、この int は 0 になるはずです。これをエクストラと共に answer アクティビティに渡し、answer アクティビティで IF ステートメントを実装します。
if (intVariable == 0)
{
//show answer 0
}
else if (intVariable == 1)
{
//show answer 1
}
コンセプトはわかりますか?
したがって、クリックされた ListView アイテムに応じてレイアウトを変更したい場合は、これが役立つ場合があります。
画像ソースや実際のレイアウト位置だけを変更していますか? 位置を変更する場合は、別のアクティビティを作成することもできます。レイアウトの位置をプログラムで変更すると、時間がかかりすぎて複雑すぎるためです。
画像ソースのみを変更し、レイアウト位置は同じままにしたいですか? 次に、これは簡単です。このコードはあなたを助けるかもしれません:
int position = //get int extras here
switch (position)
case 0:
imageView1.setImageResources(r.id.yourPicture);
case 1:
imageView1.setImageResources(r.id.yourPic2);
ご覧のとおり、クリックされた ListView アイテムに応じて画像リソースが変更されました。
必要ありません。デザインによって異なります。典型的な例は、OpenGL で実装されている Android ギャラリーです。ギャラリーのすべてのページが 1 つのアクティビティに含まれています。利点は、切り替え速度が速く、UI が非常に滑らかに見えることです。新しいアクティビティを開始すると、多くの費用がかかり、遅延が発生する可能性があります。では、これを実装する方法は?すべてのページを格納するためのスタックを作成し、異なるページを切り替えながら手動で制御 (追加または削除) する必要があります。とにかく、アプリをどのように設計するかによって異なります (新しいアクティビティに表示できるページもあれば、そうでないページもあります)。コストとパフォーマンスを考慮する必要があります。