在tablerow中插入linearlayout

时间:2012-06-20 07:26:27

标签: android

我想在表格行中添加linearlayout,并且线性布局将包含一些按钮和textview。如何实现它。我正在使用它但它不显示任何内容

    TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
final CheckBox checkbox = new CheckBox(this);
checkbox.setPadding(10, 5, 0, 0);
checkbox.setTextSize(TypedValue.COMPLEX_UNIT_PX, 15);
checkbox.setOnClickListener(new View.OnClickListener() {
TextView tv = new TextView(this);
tv.setText("Hello");
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, 14);
tv.setPadding(0, 0, 0, 0);
tv.setOnClickListener(new View.OnClickListener() {
checkbox.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
tv.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
LinearLayout linearLayout = new LinearLayout(tr.getContext());
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.addView(checkbox, new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.addView(tv, new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
tr.addView(linearLayout);
table.addView(tr, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

请帮帮我。

2 个答案:

答案 0 :(得分:1)

尝试添加像这样的行参数

TableRow row = new TableRow(this);


row.addView(linearLayout,  new TableRow.LayoutParams(1));

添加relativeLayout而不是linearlayout,并为textview

设置这样的参数
RelativeLayout.LayoutParams rel_lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
rel_lp.addRule(RelativeLayout.BELOW);
tv.setLayoutParams(rel_lp);

答案 1 :(得分:0)

首先,您需要在正确的位置关闭花括号。在设置onClickListener时,你没有关闭大括号,甚至没有在那里放一个分号。所以看来你在监听器中制作了一个textView。以下一行

checkbox.setOnClickListener(new View.OnClickListener() {

应该是这样的

checkbox.setOnClickListener(new View.OnClickListener() { 
    protected void onClick(View v){
        //your listener code here.
    }
});

当布局如此复杂时,除非必须,否则应使用XML文件而不是动态编码。