Java Android:在行中创建按钮

Java Android:在行中创建按钮,java,android,android-layout,android-button,Java,Android,Android Layout,Android Button,它的“创建动态”按钮位于一行中 final LinearLayout layoutshape = (LinearLayout) findViewById(R.id.linearshape); a = new Button[10]; for (int i = 0; i < 10; i++) { a[i] = new Button(this); a[i].setText(""+i); a[i].setId(i); a[i].setLay

它的“创建动态”按钮位于一行中

 final LinearLayout layoutshape = (LinearLayout) findViewById(R.id.linearshape);
  a = new Button[10];
  for (int i = 0; i < 10; i++) {
      a[i] = new Button(this);
      a[i].setText(""+i);
      a[i].setId(i);
      a[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                                               LayoutParams.WRAP_CONTENT));
      a[i].setBackgroundResource(R.drawable.background);
     layoutshape.addView(a[i]);
    }
final LinearLayout layoutshape=(LinearLayout)findViewById(R.id.linearshape);
a=新按钮[10];
对于(int i=0;i<10;i++){
a[i]=新按钮(此按钮);
a[i].setText(“+i”);
a[i].setId(i);
a[i].setLayoutParams(新的LayoutParams(LayoutParams.WRAP_内容,
LayoutParams.WRAP_内容);
a[i].setBackgroundResource(R.drawable.background);
layoutshape.addView(a[i]);
}
但我想把它分成三行。 如果我有30个按钮,那么它应该在第一行的10个按钮中显示,然后在下一行显示 第二排10个,第三排10个

o/p按钮应为:

b1 b2 b3 b4 b5

b6 b7 b8 b9 b10


b11 b12 b13 b14 b15

在“layoutshape”线性布局中创建3个方向为垂直的线性布局。
然后将按钮添加到内部线性布局。

您至少需要
n
线性布局
,其中
n
是您的行数。如果确实要使用
线性布局
,请使用以下
布局参数添加按钮

newlinearlayout.LayoutParams(0,LayoutParams.WRAP_内容,1/numButtonsInRow)

1/numButtonsInRow
是按钮的重量。例如,如果一行中有10个按钮,则每个按钮的权重将为
0.1
。如果布局是水平的,则将其
宽度设置为0;如果布局是垂直的,则将其
高度设置为0


在您的情况下,您可能应该使用
GridLayout
TableLayout

30个按钮看起来像键盘: 键盘可以通过xml创建(参见SDK中的软键盘示例,samples/android-10/SoftKeyboard子目录)


如果您真的需要3行按钮,我的建议是在运行时填充3个水平线性布局。但请注意,屏幕大小各不相同,手机上好的东西在平板电脑上可能看起来很难看。

首先,将主布局(layoutshape)的方向设置为垂直

for (int i = 0; i < i/10; i++) {

LinearLayout row = new LinearLayout(this);
for(int i=0;i
将行的方向设置为水平

for (int i = 0; i < 30; i++) {

  a[i] = new Button(this);
  a[i].setText(""+i);
  a[i].setId(i);
  a[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                                           LayoutParams.WRAP_CONTENT));
  a[i].setBackgroundResource(R.drawable.background);
 row.addView(a[i]);
}
layoutshape.addView(row);
}
for(int i=0;i<30;i++){
a[i]=新按钮(此按钮);
a[i].setText(“+i”);
a[i].setId(i);
a[i].setLayoutParams(新的LayoutParams(LayoutParams.WRAP_内容,
LayoutParams.WRAP_内容);
a[i].setBackgroundResource(R.drawable.background);
行。添加视图(a[i]);
}
layoutshape.addView(行);
}

请针对您的案例尝试gridview。线性中还有其他可能性吗?或者您可以使用TableLayout耶!与…有关。但是寻找其他方法需要创建3layouts@Mj它会在一个小时内创建三个相同的按钮3rows@arshad你是对的,第二个循环应该是for(i=0;i