Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Añadir dos vistas de texto mediante programación

Estoy intentando agregar vistas a una disposición linear programmatically.

LinearLayout layout = (LinearLayout) findViewById(R.id.info); String [] informations = topOffer.getInformations(); TextView informationView; View line = new View(this); line.setLayoutParams(new LayoutParams(1, LayoutParams.FILL_PARENT)); line.setBackgroundColor(R.color.solid_history_grey); for (int i = 0; i < informations.length; i++) { informationView = new TextView(this); informationView.setText(informations[i]); layout.addView(informationView, 0); layout.addView(line, 1); } 

En primer lugar, sólo he añadido el infosView, y todo funcionó bien. Butt después de añadir también la línea de vista, se estrelló con el siguiente error:

Java.lang.IllegalStateException: El hijo especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero.

Así que probé addView (View v, int index), pero se estrelló con el mismo mensaje …

¿Tiene alguien una solución?

Gracias, Martin

  • Cómo crear un ZIP InputStream en Android sin crear primero un archivo ZIP?
  • No se puede analizar la matriz Json con Gson
  • Encriptación de Android
  • ¿Puede una clase extender dos clases?
  • CountDownTimer.cancel () no funciona en Android
  • Cómo generar clases java desde el archivo WSDL
  • Superposición del sistema android 4.0
  • Escribir archivos en el almacenamiento externo en Android fallando
  • 2 Solutions collect form web for “Android: Añadir dos vistas de texto mediante programación”

    Como gpmoo7 dijo que necesita para crear cada vez que una nueva vista en el bucle

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.linear); LinearLayout layout = (LinearLayout) findViewById(R.id.linear); String[] informations = new String[] { "one", "two", "three" }; TextView informationView; for (int i = 0; i < informations.length; i++) { View line = new View(this); line.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT)); line.setBackgroundColor(0xAA345556); informationView = new TextView(this); informationView.setText(informations[i]); layout.addView(informationView, 0); layout.addView(line, 1); } } 

    No puede agregar la misma vista secundaria varias veces en la misma vista primaria. Debe crear una nueva vista o inflar una nueva vista cada vez.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.