0

画面に 5 つの画像を表示し、指定した画像をクリックする必要があります。3 秒間音楽を再生してから、次のアクティビティ (または別の 5 つの画像のセット) にランダムに移動します。

そのように、最大​​ 16 個の異なるビュー (16*5 画像) をランダムに表示する必要があります .....

それまでは、かなり適切に作業を行ってきました。

**そのために、16 個のアクティビティと対応する 16 個の Xml ファイルを作成しました。

私の質問は、これらの 16 個の XML ファイルを 16 個のアクティビティではなく単一のアクティビティに追加できるかどうかです。Activity に動的にレイアウトを追加することについて聞いたところですが、私のプロジェクトでは、正しい Image の onClick という一連の画像を変更し、クリックされるように新しい Images をロードする必要があります...**

短くシンプルにするために、 SINGLE ACTIVITYに関するさまざまなリソースのコンテンツを表示したいと思います ...

                             (or)

可能な限り多くの活動を行った方が良いですか?

注:簡単な質問かもしれませんが、過去 8 日間、このサイトでググったり検索したりしていますが、まだ結果がありません。だから、これをお願いします....

Andd, ** オタクが反対票を投じたい場合は、親切な理由を指定してください.... **

4

3 に答える 3

1

これを使用できます

setContentView(R.layout.myxmlfile.xml)

同じアクティビティで別のレイアウトをロードする

それらをランダムにロードするには、

最初と最後のレイアウトの ID を取得する

final int first = R.layout.myfirstLayout.xml;
final int last = R.layout.myLastLayout.xml;

これら 2 つの int の間でランダムな値を生成します。

final int random = (int)(first + (Math.Random()%last));

このランダムを使用してレイアウトをロードします

setContentView(random);

これが機能するには、アルファベット順に名前を付けて、レイアウトが正しく順序付けられていることを確認する必要があります。

于 2013-03-04T07:19:48.890 に答える
1

使用LayoutInflaterクラス

LayoutInflater layoutInflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.dblayout, null);
setContentView(view);
于 2013-03-04T07:21:30.057 に答える
0
int layouts[] = { R.layout.layout1, R.layout.layout2, .... }
setRandomLayout() {
   int layout = layouts[random of layouts.length];
   setContentView(layout);
}

また、すべてのレイアウトが同じように見える場合は、1 つのレイアウトを使用することをお勧めしますが、画像ごとに異なるデータ/画像を使用することをお勧めします。

于 2013-03-04T08:05:49.867 に答える