2012-02-07 13 views
0

アクティビティレイアウトの変更に関する質問があります。AndroidでアクティビティsetContentView()を変更する

Basicly私の問題は、次のとおりです。

私は一連の文字列で占めリストビューを持っています。 ListViewにOnItemClickイベントが割り当てられています

ユーザーがリストビュー内のアイテムをクリックすると、現在のレイアウトが消滅してイメージが置き換えられます。

他の記事を読むことで、ListViewの各アイテムに対して別々のアクティビティを設定することをお勧めしますが、すべてのアクティビティがやっているように見えるのは、リストビュー内の各項目に対して個別のアクティビティを設定することができます。

誰でも私にこれに関するいくつかの助けを与えることができますか?

ありがとうございます。

ショー

+1

リストビューの選択に基づいて、対応するイメージを表示する1つのアクティビティを作成できます。リストビュー選択を最初のアクティビティから2番目のアクティビティに渡し、対応するイメージを表示するだけです。 – bschultz

答えて

5
(あなたがスペースを持っているが、これは別の問題である場合、新しいフラグメントAR)あなたは本当に、少なくとも次のような理由で、画像を表示する新しいアクティビティを作成する必要があり

  1. そのような解決法をコード化して扱うのは非常に簡単です。明日、2つのボタンとテキストを追加したいのであれば、その画像のメニューを追加したいのですが?あなたのリスト活動を損なうリスクを冒すことなく、あなたの新しい活動を編集してアップグレードすることができます。

  2. これはユーザーフレンドリーです。画像は2つの活動で、表示されたとき、ユーザはバック押すと、彼は彼がリストの前に戻りますバックリストに、あなたの解決策となりますが、これは彼が

が覚えespectたいものではありませんアドバイスのこの部分:1アクティビティ= 1単純なタスクまたはユーザーとの対話。

リスト+画像表示= 2つの活動(またはその断片)

PS:あなたは、各リスト項目の異なるアクティビティを定義するだけで、「ImageActivity」を意図して渡し、そこにどの画像を指定する必要はありません表示する!

EDIT 2:IntentクラスのputExtra(文字列キー、T値)(Tが異なる場合があります)を使用して、現在の選択範囲を次のアクティビティに渡します。 例:intent.putExtra( "imgCodeSelected"、index)ここで、indexはonItemClickイベントによってフェッチされます。あなたは、彼らが異なるキーを持っている限り、あなたが望むだけ多くのエキストラを置くことができます。

+0

ありがとう、優れた答えは、いくつかのことを明確にクリアしましたが、もう1つの質問ですが、新しいアクティビティにListViewの選択肢を渡すにはどうすればいいですか? – Shaw

+0

はここに私のOnClickEventです...プライベートOnItemClickListener ImageClickListener =新しいOnItemClickListener(){ \t \t @Override \t \tます。public void onItemClick(AdapterView AV、ビューV、int型のインデックス、長いARG3){ 場合(インデックス== 0){ \tテントの意図=新しいですインテント(v.getContext()、ImageActivity.class); \t startActivityForResult(インテント、0); \t } – Shaw

+0

EDIT2の段落にお答えしました。見てみな。 –