2012-04-15 7 views
2

xパーセル可能な配列からのデータループに基づいて、アクティビティ内のxmlレイアウトの番号。この例では、私は3ループ内の動的レイアウトインフレータ

私が膨張するように望んでいたレイアウトのXMLの固定値に配列のサイズを変更したさ:親ページのXMLがある

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/tv_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>  
    <RadioGroup android:id="@+id/rg_type" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
    <RadioButton 
     android:id="@+id/radioButton1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Yes" 
     android:tag="1" /> 
    <RadioButton 
     android:id="@+id/radioButton2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="No" 
     android:tag="0" /> 
    <RadioButton 
     android:id="@+id/radioButton3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Don't Know" 
     android:tag="3" />  
</RadioGroup> 
</LinearLayout> 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 
<LinearLayout 
    android:id="@+id/ll_content" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</LinearLayout> 
</LinearLayout> 

これは活性のコードである:

public class PainRecord_FollowUp extends Activity { 

LinearLayout llContent; 
Context context; 
PainDataItem pd_in; //this is the Parcelable extra received 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.painrecord_followup);  

    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     pd_in = extras.getParcelable("m_PainDataItem"); 
    }   
    LayoutInflater layoutInflator = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll_content); 
    List views = new ArrayList(); 

    for(int i=0; i<3; i++){ 
     View view = layoutInflator.inflate(R.layout.row_painrecord_followup, null); 
     TextView textView = (TextView) view.findViewById(R.id.tv_title); 
     textView.setText("did x help " + i); 
     view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     views.add(view); 
    } 
    for(int i = 0; i<views.size(); i++) 
     insertPoint.addView((View) views.get(i)); 
} 
} 

の代わりにEの下にそれぞれ配置を示します私はLayoutParams.FILL_PARENTに変更した場合、

enter image description here

次にちょうど[0]ループ値を示した:他のACHは、このようにそれを表示します。

大きなアドバイスをいただきました。

おかげ

+0

へのごのLinearLayoutの向きを設定しますが、ラジオボタンを縦ではなく横方向に表示したいのですか? – Chironex

+0

いいえ、私はそれらを水平にしたいです。各レイアウトには3つのラジオボタンがあります。問題は、各レイアウトが互いの上に表示されることです。 – DaveSav

答えて

2

は、私は理解していない垂直

<LinearLayout 
    android:id="@+id/ll_content" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
</LinearLayout> 
+0

additonで、 'view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT、LayoutParams.WRAP_CONTENT)))行を削除することができます。 'レイアウトはXML定義で設定されるので、プログラムで設定する必要はありません – 207

+0

Bah!私はどうしてそんなに疲れたことがありましたか?はい、方向を追加し、LayoutParamsの1つをFILL_PARENTに変更します。どうもありがとう :) – DaveSav

関連する問題