[英]Creating Linear Layout with TextViews using a for loop
我想知道是否有一種方法可以在預定義的襯里布局內使用textview動態創建其他線性布局。 這是我的代碼,因此您可以理解我的要求:
LinearLayout MainLL= (LinearLayout) findViewById(R.id.myLayoutId);
for(int i=0; i<5; i++)
{
LinearLayout childLL= new LinearLayout(this);
childLL.setOrientation(LinearLayout.VERTICAL);
childLL.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
childLL.setGravity(Gravity.LEFT);
TextView text = new TextView(this);
text.setText("The Value of i is :"i);
text.setTextSize(12);
text.setGravity(Gravity.LEFT);
text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
childLL.addView(text);
MainLL.addView(childLL);
}
我的問題是我只得到“ i的值是:0”作為輸出,即第一個實例。
任何幫助將非常感激
您無需將TextView包裝在另一個LinearLayout中,只需執行以下操作:
LinearLayout MainLL= (LinearLayout) findViewById(R.id.myLayoutId);
for(int i=0; i<5; i++){
TextView text = new TextView(this);
text.setText("The Value of i is :"+i); // <-- does it really compile without the + sign?
text.setTextSize(12);
text.setGravity(Gravity.LEFT);
text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
MainLL.addView(text);
}
您所做的一切都是正確的,只需做到
childLL.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
因為您的父布局由第一視圖填充,所以您看不到其他視圖。
是的
text.setText("The Value of i is :"+i); //add + sign
是的,如果您非常需要在包裝TextView之前包裝另一個LinearLayout。 請嘗試以下代碼:
childLL.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
這將確保包裝的LinearLayout具有相同的權重,因此所有視圖將顯示在屏幕上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.