2012-06-20 41 views
0

我想在錶行添加的LinearLayout和線性佈局將舉辦一些按鈕和textview.How我能實現我使用這個that.I但它並不顯示任何內容插入的LinearLayout在tablerow的

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)); 

請幫我。

回答

0

首先,您需要在正確的位置關閉花括號。在設置onClickListener時,您不會關閉花括號,甚至不會在該處添加分號。所以看來你正在偵聽器中創建一個textView。下面一行

checkbox.setOnClickListener(new View.OnClickListener() { 

應該是這樣的

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

而當佈局是如此複雜,你應該使用的,而不是動態編碼XML文件,除非你要。

+0

對不起,mistake.Actually在錶行的數目是不固定的所以這就是爲什麼我通過編碼嘗試這個。如果你有更好的主意,那麼請與我分享。謝謝你的迴應。 – user1417638

+0

您可以使用XML創建單個表格行,並且可以對代碼中的每一行進行充氣。 – noob

1

嘗試增加排PARAMS這樣

TableRow row = new TableRow(this); 


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

添加的RelativeLayout代替的LinearLayout,並設置PARAMS喜歡本作的TextView

RelativeLayout.LayoutParams rel_lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
rel_lp.addRule(RelativeLayout.BELOW); 
tv.setLayoutParams(rel_lp); 
+0

謝謝工作。如何在複選框下面設置textview。 – user1417638

+0

如果它工作,請更正答案。爲此,您必須採取相對佈局並設置其屬性。我編輯了我的答案 – Nirali