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í.
- OnActivityResult () no se llama
- Android Fragment manejar pulsar botón de nuevo
- Android.view.InflateException: Archivo XML binario línea # 10: Error al inflar fragmento de clase
- (Deprecated) Fragmento onOptionsItemSelected no se llama
- Custom ViewPager dentro de ObservableScrollView no se mide correctamente la altura
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.
- ¿Cómo puedo deshabilitar hacer clic en TabLayout en Android
- Tabs y Swipe - editar el getItem para mostrar 3 fragmentos diferentes
- Fragmento creado de nuevo en la parte inferior de la vista de navegación seleccionada
- Android Wear WearableListView en un GridViewPager
- Fragment's onDestroyView llamado pero la vista no está siendo destruida
- Alternativas a PreferenceFragment con android-support-v4
- Snackbar no funciona dentro de la clase de fragmento
- Android Fragment se da un contenedor null en onCreateView ()
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);
- AndroidStudio Gradle: cómo configurar buildTypes, y comprobar que buildType al construir?
- Error de red desconocido al descargar Android Studio