2011-01-02 3 views
0

미리 정의 된 라이너 레이아웃 내에서 textview를 사용하여 추가 선형 레이아웃을 동적으로 만드는 방법이 있는지 궁금합니다. 즉, 첫 번째 인스턴스, 출력과 같이for 루프를 사용하여 TextViews로 선형 레이아웃 만들기

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

내 문제는 내가 전용 "0 I의 값이"얻고 있다는 것입니다 : 당신은 내가 요구하고있는 무슨의 요점을 얻을 수 있도록이 내 코드입니다.

어떤 도움이 많이

답변

4

을 주시면 감사하겠습니다 당신은, 당신은 단지 할 수있는 또 다른있는 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); 
} 
+0

감사합니다. 올바른 방향으로 나를 지적했지만 내 결함을 알아 냈습니다. 나는 setContent view를 잊었다. 마지막에 다음을 추가하면 문제가 해결되었습니다. this.setContentView (MainLL); – cad8

0

모두가 올바른지 그것을

childLL.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

다른보기를 볼 수 없기 때문에 부모 레이아웃이 첫 번째보기로 채워지기 때문에

그래

text.setText("The Value of i is :"+i); //add + sign 
0

예, 크게 텍스트 뷰를 포장하기 전에 다른있는 LinearLayout을 포장해야하는 경우.

childLL.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); 

이은, 랩있는 LinearLayout이 동일한 가중치가 보장되므로 모든보기가 화면에 표시됩니다 이 코드를 시도하십시오.

관련 문제