2011-06-20 106 views
1

我已經創建了一個按鈕陣列,但所有按鈕都按垂直順序排列。
我想要3個按鈕在一行中,接下來3個按鈕在第二行中,依此類推。按鈕的排列

這是我的代碼,請檢查它應該在哪裏完成。

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    LinearLayout layout = (LinearLayout)findViewById(R.id.liLayout); 
    for (int i = 1; i < 10; i++) 
    { 

     LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(

       LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT 
     ); 
     Button b = new Button(this); 
     b.setText("" + i); 
     b.setId(100 + i); 
     b.setWidth(50); 
     b.setHeight(20); 
     layout.addView(b, p); 

    } 
} 

回答

0

公共無效的onCreate(捆綁savedInstanceState) {

super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
//should have a vertical orientation 
LinearLayout layout = (LinearLayout) findViewById(R.id.liLayout); 

LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(

      LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT 
    ); 

LinearLayout rowLayout = null; **<--null will cause an exception** 
*layout.addView(rowLayout)* **<--must be added to make sure the object/element exist/not null** 

for (int i = 1; i < 10; i++) 
{ 
    if((i % 3) == 1) 
    { 
      rowLayout = new LinearLayout(this); 
      layout.addView(rowLayout, p); 
    }//if 
    Button b = new Button(this); 
    b.setText(""+ i); 
    b.setId(100+i); 
    b.setWidth(50); 
    b.setHeight(20); 
    rowLayout.addView(b, p); **<-- you can't add to rowLayout at first, because it doesn't exist yet** 
} 

}

問候, 斯特凡

+0

喜stephane..the語句的RowLayout =新的LinearLayout();給出了編譯錯誤。「構造函數LinearLayout沒有定義」,當我給rowLayout =新的LinearLayout(null)它的工作..但給運行時錯誤 – AndroidDev

+0

好吧,我錯過了上下文,答案已被糾正。 – Snicolas

+0

嘿stephane ..我應該做什麼使按鈕填充屏幕水平,(所有都是相同的大小),因爲以上所有按鈕我有文本框..所以我怎麼可以整合所有這些,以便他們都填滿屏幕水平 – AndroidDev

0

複製,粘貼,享受..

<RelativeLayout android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 

<Button android:id="@+id/button1" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="Button1"/> 

<Button android:id="@+id/button2" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@+id/button1" 
     android:layout_alignTop="@+id/button1" 
     android:layout_alignBottom="@+id/button1" 
     android:text="Button2"/> 

<Button android:id="@+id/button3" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@+id/button2" android:layout_alignTop="@+id/button2" android:layout_alignBottom="@+id/button2" 
     android:text="Button3"/> 

<Button android:id="@+id/button4" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/button1" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_alignRight="@+id/button1" 
     android:text="Button4"/> 

<Button android:id="@+id/button5" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/button2" 
     android:layout_alignLeft="@+id/button2" 
     android:layout_alignRight="@+id/button2" 
     android:text="Button5"/> 

<Button android:id="@+id/button6" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_alignLeft="@+id/button3" android:layout_alignRight="@+id/button3" 
     android:layout_below="@+id/button3" 
     android:text="Button6"/> 

<Button android:id="@+id/button7" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_alignLeft="@+id/button4" 
     android:layout_alignRight="@+id/button4" 
     android:layout_below="@+id/button4" 
     android:text="Button7"/> 

<Button android:id="@+id/button8" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/button5" 
     android:layout_alignLeft="@+id/button5" 
     android:layout_alignRight="@+id/button5" 
     android:text="Button8"/> 


<Button android:id="@+id/button9" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/button6" android:layout_alignLeft="@+id/button6" android:layout_alignRight="@+id/button6" 
     android:text="Button9"/> 

並讀取此:Android Layout Tricks #1

+0

謝謝,但那件事我已經完成了.. – AndroidDev

+0

大聲笑...你使用圖形佈局工具嗎?它更幫助.. –

+0

假設我不得不創建100個按鈕..不該我應該做什麼......只是簡單地添加100個這樣的buutons ..思考如果我nedd 1000個按鈕。 – AndroidDev