Cómo crear botones dinámicamente en android?

Campo de golf

Quiero crear una página como esta. estos 7 botones ya existen, pero si el usuario desea agregar más categorías (botón), puede hacerlo usando el botón + y eliminar usando el botón . ¿Alguna idea o tutorial para hacer esto?

Botón Crear / Eliminar al hacer clic en el + button y - button como se muestra a continuación:

  public void onClick(View v) { switch(v.getId()){ case (R.id.plusbutton): Button myButton = new Button(this); myButton.setText("Add Me"); LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout); LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); ll.addView(myButton, lp); break;. case (R.id.minusbutton): Button myButton = new Button(this); myButton.setText("Remove Me"); LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout); LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); ll.removeView(myButton, lp); break; } } 

esto es para crear el botón dinámicamente en Android

 LinearLayout row2 = (LinearLayout) findViewById(R.id.hll2); Button ivBowl = new Button(this); ivBowl.setText("hi"); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(70, 70); layoutParams.setMargins(5, 3, 0, 0); // left, top, right, bottom ivBowl.setLayoutParams(layoutParams); row2.addView(ivBowl); 
 LinearLayout mainLayout = (LinearLayout)findViewById(R.id.yourlayoutidthatisonethepicture); Button addButton =new Button(this); addButton.setText("add"); mainLayout.addView(addButton); 

para eliminar es lo mismo, simplemente cambie este ” mainLayout.addView(addButton) ” para eliminar View o configureVisibilidad del botón para Ver.GONE

Es bastante simple.

  Button button1=new Button(context); button1.setText("test"); button1.setId(id); containerlayout.add(button1); 

Espero que esto te ayude.

Si desea crear una vista dinámica (como EditText, textview, etc.) simplemente use este código y ejecútelo en su aplicación.

MyActivity.java://your java file

  LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout1); EditText et = new EditText(v.getContext()); et.setText("My new Edit Text); et.setMinLines(1); et.setMaxLines(3); ll.addView(et); 

En archivo XML: