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