1

2 つのテキストビューと 1 つのボタンで構成される項目を設定したいレイアウトがあります。レイアウトに入力されるアイテムの数は事前にわかりません。追加したいアイテムの数をlayout.xmlに書くときにわからないので、xmlではなくjavaにアイテムを追加する必要があります。しかし、見栄えが悪いので、Java で GUI を構築するのは好きではありません。

アイテムの xml ファイルを作成し、実行中にレイアウトに新しいアイテムを追加できるかどうかは誰にもわかりませんか?

達成したいことを実証するために、いくつかの疑似コードを作成しました。

MainLayout.xml

//My empty Layout
<Layout myMainLayout >
</RelativeLayout>

Fragment_post.xml

//one post
<TextView/>
<TextView/>
<Button/>

コードのどこかに

setContentView(R.layout.MainLayout);
MyMainLayout.addFragment(R.layout.Fragment_post);
4

2 に答える 2

0

確かにこれはできます。アクティビティに最初の空のレイアウトを設定するだけです。

onCreate()
{
setContentView(R.layout.initial_layout);
}

次に、メイン レイアウトへの参照を取得して保持します。

LayoutInflater inflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout mainLayout=(RelativeLayout)inflater.inflate(R.layout.initial_layout, null);

次に、必要に応じて新しいビューをレイアウトに追加します。

LinearLayout view=(LinearLayout)inflater.inflate(R.layout.fragment_post, null);
mainLayout.addView(view);

ただし、ここでフラグメントと呼ぶものは、android がフラグメントと呼ぶものではないことに注意してください。実際の Android フラグメントについては、こちらをご覧ください。

http://developer.android.com/guide/components/fragments.html

于 2013-02-17T10:37:42.280 に答える
0

必要な場所に fragment_post.xml を追加できます。

LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout view=(LinearLayout)inflater.inflate(R.layout.yourfragment, null);
yourLayout.addView(view);

Fragment を GUI の一部と混同しないでください。詳細はこちらをご覧ください: http://developer.android.com/guide/components/fragments.html

于 2013-02-17T10:30:18.580 に答える