compruebe si existe una vista desde un inflador de diseño antes de añadir otro

En mi proyecto de Android, estoy añadiendo dinámicamente formularios a mi diseño lineal y luego destruirlos cuando haya terminado con un botón. Sin embargo, cuando hago clic en el botón "añadir", añade infinitamente más formas, aunque sólo quiero uno a la vez. ¿Cómo puedo chec si mi linearLayout "cuentas" se ha añadido a la vista o si existe en la vista en el momento? Este es el código para agregar la vista. ¿Cómo puedo comprobar si la vista ya existe antes de agregar la vista?

public void showForm(String form){ View view; LayoutInflater inflater =(LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.forms, null); LinearLayout item = (LinearLayout) view.findViewById(R.id.accounts); l.addView(item); } 

Opción # 1: Usar boolean accountsAdded=false; , estableciéndolo en true cuando sea necesario

Opción # 2: Utilizar l.findViewById(R.id.accounts) y ver si devuelve null

BTW, se bloqueará si el widget raíz de R.layout.forms no es el R.id.accounts View , así que por favor agregar view , no item , a l via addView() .

Puede comprobar desde el método ViewGroup indexOfChild (Ver vista) si el niño existe o no. devuelve un número entero positivo que representa la posición de la vista en el grupo o -1 si la vista no existe en el grupo

 ViewGroup rootLayout = (ViewGroup) getWindow().peekDecorView(); LayoutInflater li = LayoutInflater.from(this); View myView= li.inflate(R.layout.recorder, null); if(rootLayout.indexOfChild(myView) == -1) rootLayout.addView(myView); 
  • ExpandableListView onExpand siempre desplaza el grupo expandido hacia arriba
  • Obtener el valor de color de píxel de un punto en una vista de Android que incluye un lienzo con respaldo de mapa de bits
  • Android: aplica una transformación arbitraria a una vista
  • Cómo configurar la sombra de una vista en Android?
  • ¿Cómo hacer una pausa de la rotación de la lona durante 2 segundos en ángulos específicos?
  • Custom Seekbar con efecto de enmascarar con dos estirables?
  • Cómo iniciar dos animaciones en dos vistas diferentes en API lvl 19
  • Poner cualquier vista sobre un VideoView en Android
  • Diferentes diseños de hijos para diferentes grupos ExpandableListView
  • Custom ExpandableListview Android
  • Activity.addContentView (Vista) == ViewGroup.addContentView (Ver)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.