簡體   English   中英

使用for循環使用TextViews創建線性布局

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM