2017-02-26 13 views
0

私は のAndroidのTextViewとのEditTextは、プログラム

下のテキストビュー----テキスト編集----テキストビュー
テキストビュー----エディットテキストとしてのTextViewとエディットテキストの5つのブロックを追加したいです - ---テキスト表示
テキスト表示----テキスト編集----テキスト表示
テキスト表示----テキスト編集----テキスト表示
テキスト表示----テキスト編集--- - テキストビュー

私は以下を試しました:

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)ビューが水平方向に追加されます。最後の3行のコメントを外すと、すべてのビューが垂直方向に追加されます。レイアウトは、プログラム内の最後の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); 

、あなたは1内部のいくつかの線形レイアウトを追加することができます。したがって、基本的にTextViewの各セットについて、別々のLinearLayoutを作成してから、これらのレイアウトをメインのLinearLayoutに追加します。これはまだ垂直方向です。

+0

ありがとう!これはまさに私が必要としていたものです。 – abhikush

+0

@abhikush great :) –

1

あなたのコードはこのようにしてください。

  1. findViewById()によるルートレイアウトは、その向きを垂直に設定します。ループ

  2. ため

  3. スタートは、リニアレイアウトを取り、横 3.1と向きを設定するテキストビューを追加 3.2エディットテキストを追加 3.3テキストビューを追加

  4. ルートに、この第三段階のリニアレイアウトを追加します。レイアウト。

  5. ループ停止の場合。このようにして

+0

これはうまくいきますが、ステップ3で私は混乱しましたが、私が受けた答えは私には明らかでした。 – abhikush

関連する問題