2013-09-19 2 views
-2

Я пытаюсь создать представление, в котором при нажатии кнопки будет добавлен относительный макет ... Каждый раз, когда я нажимаю кнопку добавления, новый текстовый вид следует добавить к относительной компоновке ... Пожалуйста, помогите мне, почему это не работаетДобавление относительной компоновки не работает

public void onClick(View v) { 

      rltlayoutSub1 = new RelativeLayout(getApplicationContext()); 
      for (int j = 0; j < count; j++) { 
       txtView = new TextView(getApplicationContext()); 
       txtView.setText("AAA"); 
       rltlayoutSub1.addView(txtView); 
       rltlayoutSub1.setLayoutParams(params1); 
       count++; 
      } 

     } 
+0

использовать 'ActivityName.this' вместо' getApplicationContext() ' – Raghunandan

+0

Опубликовать полный код. Но проблема в том, что вы продолжаете создавать новый относительный макет и никогда не добавляете этот относительный макет в корневой макет. –

+0

Проверьте, добавили ли вы новый созданный RelativeLayout в базовый макет как baseLayout.addView (rltlayoutSub1); – Bhavna

ответ

1

что значение счетчика, потому что, если счетчик равен 0, то условие для цикла не удается

эта ссылка может помочь вам link

0

Try next: setContentView (rltlayoutSub1); sfter вы устанавливаете параметры макета

0

Думаю, это полезно для вас.

Необходимо создать для генерации id для текстового просмотра, а затем добавить в макет.

RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout); 

     Random rnd = new Random(); 
     int prevTextViewId = 0;  
     for(int i = 0; i < 10; i++) 
     {      
      final TextView textView = new TextView(this); 
      textView.setText("Text "+i);  
      textView.setTextColor(rnd.nextInt() | 0xff000000);    

      int curTextViewId = prevTextViewId + 1; 
      textView.setId(curTextViewId); 
      final RelativeLayout.LayoutParams params = 
       new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, 
               RelativeLayout.LayoutParams.WRAP_CONTENT); 

      params.addRule(RelativeLayout.BELOW, prevTextViewId); 
      textView.setLayoutParams(params); 

      prevTextViewId = curTextViewId; 
      layout.addView(textView, params); 
     }    
    } 

Это работа для me.if найти любую проблему, оставить комментарий.

1
package com.example.solution; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 

public class MainActivity extends Activity 
{ 
    Button b1; 
    RelativeLayout r1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     //r1=(RelativeLayout)findViewById(R.id.test); 
     b1=(Button)findViewById(R.id.test1); 

     b1.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View arg0) 
      { 
       RelativeLayout relativeLayout = new RelativeLayout(getApplicationContext()); 

       // Defining the RelativeLayout layout parameters. 
       // In this case I want to fill its parent 
       RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
         RelativeLayout.LayoutParams.FILL_PARENT, 
         RelativeLayout.LayoutParams.FILL_PARENT); 

       // Creating a new TextView 
       TextView tv = new TextView(getApplicationContext()); 
       tv.setText("Test"); 

       // Defining the layout parameters of the TextView 
       RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
         RelativeLayout.LayoutParams.WRAP_CONTENT, 
         RelativeLayout.LayoutParams.WRAP_CONTENT); 
       lp.addRule(RelativeLayout.CENTER_IN_PARENT); 

       // Setting the parameters on the TextView 
       tv.setLayoutParams(lp); 

       // Adding the TextView to the RelativeLayout as a child 
       relativeLayout.addView(tv); 

       LinearLayout main = (LinearLayout)findViewById(R.id.main_layout); 
       //View view = getLayoutInflater().inflate(relativeLayout, main,false); 
       main.addView(relativeLayout); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 
0

В кнопках OnClick вы создаете новый динамический относительный макет и цикл вы создаете новый TextView и добавив, что TextView относительного расположения, но вы не добавляя ничего к корневому макету. то как бы получить любой выход

0

Он не отображается в связи с. 1. По мере того, как вы увеличиваете счетчик, конца цикла нет конца. Сначала удалите инкремент счета. 2. Вы не добавляете к основному виду. 3. После добавления к основному виду, поскольку вы используете Relative Layout, вам нужно выполнить позиционирование элементов макета, поскольку это относительная компоновка, если вы не укажете, что позиционирование они перекрывают друг друга.

Смежные вопросы