2016-09-17 11 views
2

プログラムでレイアウトとXMLを生成する必要があるという要件があります。私はどのようなアプローチを取るべきですか?私にお知らせください。ありがとうございました。Android:xmlをマージしてプログラムでレイアウトを生成する

レイアウトを生成します。

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    LinearLayout audio = new LinearLayout(this); 

    audio.setGravity(Gravity.BOTTOM | Gravity.CENTER); 

    RecordButton = new RecordButton(this); 
    audio.addView(RecordButton, 
       new LinearLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        Gravity.CENTER | Gravity.BOTTOM)); 

    PlayButton = new PlayButton(this); 
    audio.addView(PlayButton, 
       new LinearLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        Gravity.CENTER | Gravity.BOTTOM)); 

    setContentView(audio); 
} 

は、XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#FFFFFF" 
android:gravity="top"> 

<Button 
android:id="@+id/next" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="130dp" 
android:background="#54C571" 
android:text="Next" 
android:textColor="#FFFFFF" 
android:textSize="23sp" 
android:textStyle="bold" /> 
+0

'some_view_in_xml.addView(generated_layout);'はどうですか? –

+0

@KNeerajLal線形レイアウトはどうですか?どのようにそれらを含めるべきですか?それはこの 'audio.xml.addView(generated)'のようなものですか?私はしようとしたが、XMLが解決できないと言われた。 –

+0

xmlレイアウトを表示する。 –

答えて

2

、これはXMLで、あなたのビューを保持し、それに生成されたビューを追加する

をコンテナビューを作成します。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#FFFFFF" 
    android:gravity="top"> 

    <Button 
     android:id="@+id/next" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="130dp" 
     android:background="#54C571" 
     android:text="Next" 
     android:textColor="#FFFFFF" 
     android:textSize="23sp" 
     android:textStyle="bold" /> 

    <!-- create a container view to hold your view --> 
    <LinearLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/next" /> 

</RelativeLayout> 

あなたのコードで

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.the_above_layout); 

    LinearLayout container = (LinearLayout) findViewById(R.id.container); 


    LinearLayout audio = new LinearLayout(this); 

    audio.setGravity(Gravity.BOTTOM | Gravity.CENTER); 

    RecordButton = new RecordButton(this); 
    audio.addView(RecordButton, 
       new LinearLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        Gravity.CENTER | Gravity.BOTTOM)); 

    PlayButton = new PlayButton(this); 
    audio.addView(PlayButton, 
       new LinearLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        ViewGroup.LayoutParams.WRAP_CONTENT, 
        Gravity.CENTER | Gravity.BOTTOM)); 


    // add the view to your container 
    container.addView(audio); 
} 
+1

私は今それを得る。私は今日あなたのおかげで何か新しいことを学びます。 –

関連する問題