2012-02-19 22 views
0

ボタンを別のLinearLayoutに動的に(Javaで)追加したいが、その前にLinearLayoutをメインビューに追加する必要があります。また、LinearLayoutです。複数のボタンを複数のLinearLayoutに動的に追加

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.game); 

    globalLinear = (LinearLayout) findViewById(R.id.viewButtons); 
    LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 
    LinearLayout row = (LinearLayout) inflater.inflate(R.layout.row_buttons, globalLinear); 

    for(int i = 1; i <= nbButton; i++) { 
     if(i % 3 == 0) { 
      row = (LinearLayout) inflater.inflate(R.layout.row_buttons, globalLinear); 
     } 
     Button b = new Button(this); 
      int number = generator.nextInt(complexity); 

      b.setText(number+""); 
      row.addView(b, new LayoutParams(LayoutParams.WRAP_CONTENT, 
              LayoutParams.WRAP_CONTENT));  
    } 
} 

R.id.viewButtonsが内部メイン(縦)LinearLayoutです:

は、ここに私のコードです。 R.layout.row_buttonsは、水平LinearLayoutです。

あなたは上記を参照できるように、私は(i % 3 == 0)LinearLayoutあたりの3つのボタンを取得しようとしています。しかし、新しいLinearLayoutが作成されることはありませんようです。

はあなたの助けをありがとう:)

+0

ええ、コードは大丈夫ですが、私はそれをテストしていません。表示されるビューは何ですか? すべてのXMLは大丈夫ですか?レイアウトの高さと属性を定義しましたか? –

+0

私は10個のボタンを持っていますが、それぞれがLinearLayoutにあります(したがって10個のLinearLayout)。 私のXMLが間違っているとは思わない、はい、高さと幅が定義されています。私の心には、これはちょうど新しいLinearLayoutを導入することです...しかし、どのように? – lost17

答えて

0

あなたはそれがある限りループが実行として作成するために、ループ内での新しいインスタンスを作成し、線形レイアウトを定義する必要がある場合があります。

+0

正確には、私はLinearLayoutの新しいインスタンスを作成する必要があると思いますが、私はインフレータストラクチャを使用して新しいインスタンスをインスタンス化する方法がわかりません。 – lost17

+0

forループ内にレイアウトインフレータを作成することもできます。現時点では、それは創造されたものだけです。それはその方法を試す価値があります。 –

+0

私はまだ10のLinearLayoutを持っています:( – lost17

関連する問題