El niño especificado ya tiene un error de padre en la vista inflado

¡Ayuda inmediata necesaria! El código utilizado para trabajar bien, pero después de un tiempo me di cuenta de la clasificación ya no t work anymore and gives "the specified child already has a parent, call removeView() first..." on the alertDialog.show (); `

 ///// Rating bar initialising Context mContext = ShowActivity.this; LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE); layout = inflater.inflate(R.layout.custom_rate_dialog, (ViewGroup) findViewById(R.id.layout_root)); final RatingBar rating_indicator = (RatingBar)findViewById(R.id.rating_bar_cafe_indicator); final float current_rating = (float)mDbHelper.getInt(mRowId, type, RATE_COLUMN); rating_indicator.setRating(current_rating); rateDialogBuilder = new AlertDialog.Builder(ShowActivity.this); rateDialogBuilder.setView(layout); rateDialogBuilder.setCancelable(false); rateDialogBuilder.setIcon(R.drawable.rate_star_med_on); rateDialogBuilder.setTitle("RATE IT!"); rateDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { rating_indicator.setRating(mDbHelper.getInt(mRowId, type, RATE_COLUMN)); ((ViewGroup)layout.getParent()).removeView(layout); dialog.cancel(); } }); ratingText = (TextView) layout.findViewById(R.id.rate_text); rating = (RatingBar) layout.findViewById(R.id.rating_bar_cafe); rating.setRating(current_rating); rating.setStepSize(1); rating.setOnRatingBarChangeListener(ShowActivity.this); if ((int)current_rating != 0) ratingText.setText("Your rating: " + (int)current_rating); Button rateButton = (Button) findViewById(R.id.button_rate); rateButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { AlertDialog alertDialog = rateDialogBuilder.create(); alertDialog.show(); } }); ////// 

Extraño, si llamo removeAllViews() o removeView() justo antes de alertDialog.show(); No se bloquea, pero abre desordenado el diálogo donde puedo ver tanto la calificación y la actividad actual o smth. También el problema podría estar en otro lugar en el código porque esto funcionaba bien, cualquier idea ¿qué debo buscar o cómo cambiar esto para que funcione?

One Solution collect form web for “El niño especificado ya tiene un error de padre en la vista inflado”

El error que obtienes es que estás agregando una View a un padre después de que ya se haya agregado a un padre.

Mirando su código, parece que,

 layout = inflater.inflate(R.layout.custom_rate_dialog, (ViewGroup) findViewById(R.id.layout_root)); 

Agrega custom_rate_dialog a tu layout_root. A continuación, lo rateDialogBuilder.setView(layout); a otro padre cuando rateDialogBuilder.setView(layout);

Si sólo está tratando de inflar ese diseño para establecerlo como la View para el Dialog , sólo tiene que hacer

 layout = inflater.inflate(R.layout.custom_rate_dialog, null); 
  • Derecho a la izquierda ProgressBar?
  • Iniciar actividad con SearchView abierto
  • ¿Cómo puedo recuperar el botón de trabajo cuando searchview en Android
  • Cómo detectar un clic en cualquier parte de un SearchView
  • error: Sólo el subproceso original que creó una jerarquía de vista puede tocar sus vistas
  • Android está redibujando todas las vistas al aplicar la animación en una vista
  • Obtener el id de una vista como String en el evento onClick
  • Iniciar nueva actividad desde SearchView
  • ¿Es posible cambiar el textcolor en un Android SearchView?
  • ¿Cómo agregar vista como fondo a la superficie?
  • Android: Obtiene el elemento listview del botón que se hace clic en la vista de lista personalizada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.