AndroidRuntimeException: requestFeature () debe ser llamado antes de agregar contenido

Tengo fragmento de diálogo. Tengo la intención de usar este fragmento en la actividad y el diálogo. Y anular el método onCreateDialog y onCreateView. Aquí está la codificación.

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.interval_time_popup, null); setup(view, false); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); View view = getActivity().getLayoutInflater().inflate(R.layout.interval_time_popup, null); builder.setTitle("Interval Time"); builder.setView(view); setup(view, true); builder.setPositiveButton("Set", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { listener.setOnIntervalTime(hourNp.getValue(), minNp.getValue()); dismiss(); } }); builder.setNegativeButton("Cancel", new OnClickListener() { public void onClick(DialogInterface dialog, int which) { dismiss(); } }); return builder.create(); } 

Yo uso este fragmento en la clase de actividad así.

  SelectTimeIntervalDialogFragment fragment = new SelectTimeIntervalDialogFragment(); fragment.setHrMin(hr, min); Bundle args = new Bundle(); FragmentTransaction t = getSupportFragmentManager().beginTransaction(); t.replace(R.id.shift_period_interval_layout, fragment); t.commit(); 

Lo llamo de otra actividad como esa.

  if((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_NORMAL) == Configuration.SCREENLAYOUT_SIZE_NORMAL){ Intent intent = new Intent(ShiftPeriodActivity.this, SelectIntervalActivity.class); intent.putExtra("intervalHr", speriod.intervalHr); intent.putExtra("intervalMin", speriod.intervalMin); startActivityForResult(intent, 1); } else { FragmentManager fm = getSupportFragmentManager(); intervalDialog = new SelectTimeIntervalDialogFragment(); intervalDialog.setHrMin(speriod.intervalHr, speriod.intervalMin); intervalDialog.show(fm, "interval_fragment"); } 

Tengo dos condiciones. Cuando el tamaño de la pantalla es normal, llama a la actividad que incluye el diálogo de fragmentos. De lo contrario, llama al cuadro de diálogo emergente. Tengo la excepción cuando se llama al diálogo emergente. Se dice que requestFeature() must be called before adding content . ¿Puedo usarlo así? Me gustaría saber cómo superar esto.

Gracias.

Parece que su problema es exactamente el mismo que el mío – código similar-ish y la misma excepción lanzada.

La solución es hacer lo que @laalto sugirió: use onCreateView() o onCreateDialog() pero no ambos al mismo tiempo. Sé que la excepción puede ser aparentemente causada por muchas cosas diferentes, pero esto es lo que ayudó en mi caso; Espero que ayude a alguien más en el futuro 🙂

Pienso que usted está utilizando requestWindowFeature (); A crear

Úselo antes de setContentView (R.layout.activity);

  • Fragmento de Android superpuesto por otro fragmento todavía se muestra y no onPause
  • Cómo deshabilitar el marcador de mapa android
  • Google Analytics Fragmento de vistas de pantalla
  • Cómo deshabilitar el toque en el área del fragmento
  • IsValidFragment Android API 19
  • ANDROID: ViewPager con diferentes fragmentos en el método instantiateItem
  • Android FragmentTabHost - ¿Todavía no está completamente horneado?
  • Navegación de nuevo a FragmentPagerAdapter -> fragmentos están vacíos
  • ContentProvider llamadas atómicas? Guardar en onPause, cargar en OnActivityCreated, datos antiguos
  • Manejo de la prensa trasera al utilizar fragmentos en Android
  • Contenido de la barra ActionBar que se superpone
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.