2017-02-26 73 views
0

我想補充的TextView和編輯文本的5塊如下的Android的TextView和EditText上編程

文本視圖----編輯文本----文本視圖
文本視圖----編輯文字 - ---文本視圖
文本視圖----編輯文本----文本視圖
文本視圖----編輯文本----文本視圖
文本視圖----編輯文本--- - 文本視圖

我試過以下內容:

LinearLayout rootLayout = (LinearLayout) findViewById(R.id.root_layout); 
    for (int i = 0; i < 6; i++) { 
     rootLayout.setOrientation(LinearLayout.HORIZONTAL); 
     TextView textView = new TextView(this); 
     textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT,1)); 
     textView.setText("Text"); 
     rootLayout.addView(textView); 

     EditText editText = new EditText(this); 
     editText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT,1)); 
     rootLayout.addView (editText); 

     TextView addTextView = new TextView(this); 
     addTextView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT,1)); 
     addTextView.setText("Additional Text"); 
     rootLayout.addView(addTextViewtextView); 

//   TextView dividerLine = new TextView(this); 
//   rootLayout.setOrientation(LinearLayout.VERTICAL); 
//   rootLayout.addView(dividerLine); 

使用上面的代碼水平添加所有15(3 * 5)視圖。當我取消註釋最後三行時,所有視圖都會垂直添加。看起來,佈局是根據程序中最後一個setOrientation語句設置的。

+0

不清楚是什麼問題。 LinearLayout需要定位。 – Lino

+0

爲什麼你要通過循環添加你可以使用包含佈局? – Abhishek

回答

2
LinearLayout rootLayout = (LinearLayout) findViewById(R.id.root_layout); 
rootLayout.setOrientation(LinearLayout.VERTICAL); 
//this layout still needs to be vertical to hold the children. 
for (int i = 0; i < 6; i++) { 

    //make a new horizontal LinearLayout each time to hold the children. 
    LinearLayout temp = new LinearLayout(this); 
    temp.setOrientation(LinearLayout.HORIZONTAL); 
    temp.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
     LinearLayout.LayoutParams.WRAP_CONTENT,1)); 

    TextView textView = new TextView(this); 
    textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT,1)); 
    textView.setText("Text"); 
    temp.addView(textView); //add them to this temporary layout. 

    EditText editText = new EditText(this); 
    editText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT,1)); 
    temp.addView (editText); 

    TextView addTextView = new TextView(this); 
    addTextView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT,1)); 
    addTextView.setText("Additional Text"); 
    temp.addView(addTextViewtextView); 

    rootLayout.addView(temp); 

通過這種方式,可以在裏面添加一個多個線性佈局。因此,基本上,對於每組TextView s,您正在製作一個單獨的LinearLayout,然後將這些佈局中的每一個添加到仍然垂直方向的主要LinearLayout

+0

謝謝!這正是我需要的。 – abhikush

+0

@abhikush很棒:) –

1

你的代碼應該遵循這種方式。

  1. findViewById()的根佈局設置它的方向垂直。

  2. 開始的for循環

  3. 採取線性佈置,設置取向爲水平 3.1添加文本視圖 3.2附加編輯文本 3.3添加文本視圖

  4. 此第三階線性佈局添加到根佈局。

  5. For循環停止。

+0

這有效,但我在第3步感到困惑,而我接受的答案對我來說很明確。 – abhikush