[英]how to put the button on the right of the android java layout
我在android java中有这样的线性布局显示,我希望按钮位于CheckBox的右侧,如我想要的图片所示。 我尝试了几天,但失败了,我真的在寻求帮助
这是代码
public void Tampilan() {
Display display = getWindowManager().getDefaultDisplay();
ScrollView sv = (ScrollView) findViewById(R.id.svAnalisa); // new ScrollView(this);
//ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
//sv.setLayoutParams(lp);
LinearLayout l = new LinearLayout(this);
l.setOrientation(LinearLayout.VERTICAL);
sv.addView(l);
HorizontalScrollView hv = new HorizontalScrollView(this);
ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
hv.setLayoutParams(lp);
l.addView(hv);
//LinearLayout ll = new LinearLayout(this);
ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setMinimumWidth(300);
//newcheckbox
cbgejala = new CheckBox[gejala.length];
//newbuttton
btnview = new Button[gejala.length];
for (int i = 0; i < gejala.length; i++) {
//view checkbox
cbgejala[i] = new CheckBox(this);
cbgejala[i].setText(gejala[i]);
ll.addView(cbgejala[i]);
//view button
btnview[i] = new Button(this);
btnview[i].setText("Detail");
btnview[i].setNextFocusRightId(cbgejala[i].getRight());
btnview[i].setRight(2);
btnview[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
ll.addView(btnview[i]);
//onclick btnview
final int finalI = i;
btnview[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent b = new Intent(AnalisaActivity.this, detailGejala.class);
b.putExtra("namagejala", gejala[finalI]);
b.putExtra("keterangangejala", keterangan_gejala[finalI]);
startActivity(b);
}
}); }
这就是结果
这是我想要的视图:
您可以轻松实现这一目标。 只需将复选框和按钮放在相对的布局容器中:
<RelativeLayout
...
android:width = "match_parent"
>
<CheckBox
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="start"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end"
/>
</RelativeLayout>
干得好。 您需要为每行添加一个垂直布局。
for (int i = 0; i < gejala.length; i++)
{
llh = new LinearLayout(this);
llH.setOrientation(LinearLayout.HORIZONTAL);
lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
llh.setLayoutParams(lp);
.....
llh.addView(cbgejala[i]); //view button
...
llh.addView(btnview[i]);
...
ll.addView(llh);
...
}
试试这个代码:
public void Tampilan() {
Display display = getWindowManager().getDefaultDisplay();
ScrollView sv = (ScrollView) findViewById(R.id.svAnalisa); // new ScrollView(this);
//ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
//sv.setLayoutParams(lp);
LinearLayout l = new LinearLayout(this);
l.setOrientation(LinearLayout.VERTICAL);
sv.addView(l);
HorizontalScrollView hv = new HorizontalScrollView(this);
ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
hv.setLayoutParams(lp);
l.addView(hv);
//LinearLayout ll = new LinearLayout(this);
ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setMinimumWidth(300);
//newcheckbox
cbgejala = new CheckBox[gejala.length];
//newbuttton
btnview = new Button[gejala.length];
for (int i = 0; i < gejala.length; i++) {
LinearLayout hl = new LinearLayout();
hl.setOrientation(LinearLayout.VERTICAL);
ViewGroup.LayoutParams p = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
hl.setLayoutParams(p);
//view checkbox
cbgejala[i] = new CheckBox(this);
cbgejala[i].setText(gejala[i]);
hl.addView(cbgejala[i]);
//view button
btnview[i] = new Button(this);
btnview[i].setText("Detail");
btnview[i].setNextFocusRightId(cbgejala[i].getRight());
btnview[i].setRight(2);
btnview[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
hl.addView(btnview[i]);
ll.addView(hl);
//onclick btnview
final int finalI = i;
btnview[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent b = new Intent(AnalisaActivity.this, detailGejala.class);
b.putExtra("namagejala", gejala[finalI]);
b.putExtra("keterangangejala", keterangan_gejala[finalI]);
startActivity(b);
}
}); }
这样做是在将按钮和文本插入水平的线性布局之前,将按钮和文本放置在水平的线性布局中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.