Динамическое создание EditText в Android

Я работаю над приложением, где мне нужно создать несколько         EditText и Spinner динамически. Поэтому я начал искать       для решения, поскольку у меня нет разрешения использовать Невидимый      свойство в файле XML. Я много искал и получил очень мало примеров.       только на stackoverflow. Я следую им и создаю эту программу.

       **MainActivity.java code** 

public class MainActivity extends Activity {

        RelativeLayout containerLayout;
        static int totalEditTexts = 0;
        Button button;
        Context context;


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

    containerLayout = (RelativeLayout)findViewById(R.id.relative1);
    button = (Button)findViewById(R.id.button1);

    button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
    // TODO Auto-generated method stub

     totalEditTexts++;
     if (totalEditTexts > 100)
    return;
    EditText editText = new EditText(getBaseContext());
    containerLayout.addView(editText);
      editText.setGravity(Gravity.RIGHT);
     RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) editText.getLayoutParams();
      layoutParams.width = RelativeLayout.LayoutParams.MATCH_PARENT;
        layoutParams.setMargins(23, 34, 0, 0);
     // RelativeLayout.LayoutParams()
       editText.setLayoutParams(layoutParams);
    //if you want to identify the created editTexts, set a tag, like below
     editText.setTag("EditText" + totalEditTexts);
                }
            });

} }

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

enter image description here

Может кто-нибудь объяснить мне, что я должен сделать сейчас, чтобы решить эту проблему.

Ответ 1

Я решил свою проблему, просто заменив RelativeLayout на LinearLayout

Ответ 2

Проблема с динамическим использованием RelativeLayout и добавлением материала заключается в том, что если вы не устанавливаете относительное положение представления, оно перекрывает друг друга. Поэтому, когда вы нажимаете и добавляете новые представления, новые представления добавляются, но они перекрывают друг друга. Но добавив LinearLayout, виды видны ниже друг друга, так как вы можете установить ориентацию по вертикали.