2012-02-03 10 views
7

私が取り組んでいるアプリケーションは、プロファイルのHorizo​​ntalScrollViewを表示する動的レイアウトが必要です。プロファイルは、画像とテキストを含む単純なRelativeLayoutです。私はデータファイルからデータを取得するので、プロファイルごとに相対レイアウトを作成する必要があります。最初は、それぞれのRelativeLayoutをプログラムでforループで作成し、それを親ビューに追加しました。これは機能しますが、私はこのようにしたくありません。デバイスの画面サイズなどに基づいて、さまざまなレイアウトファイルを使用したいと考えています。Android:ビューのコピーを作成できますか?

私は考えました。さて、1つのプロファイルだけのレイアウトがあればどうでしょうか?私のコードはfindViewById()でその1つのプロファイルを取得し、それに基づいて新しいプロファイルを作成できます。言い換えれば:これは、Javaで、temporaryProfileは今originalProfileへの参照であるため、当然のことながら

// get the layout 
    profileLayout = (LinearLayout) findViewById(R.id.profileLayout);   

    // get the first profile in the layout 
    originalProfile = (RelativeLayout) findViewById(R.id.profile1); 

    // make copy of profile 
    temporaryProfile = originalProfile; 

    // make changes to the this profile and add it back 
    profileLayout.addView(temporaryProfile); 

、これは動作しません。では、このRelativeLayoutのコピーを作成する方法はありますか?私はLayoutInflaterを認識していますが、それがどのように動作するのかまだ分かりません。 Object.clone()もあります。

答えて

8

特定のケースのようなサウンドは、ある種のListViewとアダプタ(情報についてはthisのようなリソースを参照してください)から利益を得ることができます。そうでない場合は、LayoutInflater です。 1つを取得すると、XMLレイアウトファイルで定義したビューを「膨張」させ、必要なものを何でも実行できます。

Here'sインフレータの素晴らしい議論。

+0

ありがとう! –

0

xmlファイルのインクルードを使用して、必要なレイアウトを作成してみませんか?

関連する問題