Android: Fragmento de preferencia con un fragmento de cajón de navegación
Hola Tengo una aplicación de Android que ya utiliza un cajón de navegación. Mi MainActivity extiende Fragment Activity y mi SettingFragment extends PreferenceFragment
Configuración Fragmento :
- Elementos de menú de la bandeja de navegación seleccionados dentro de diferentes grupos
- El artículo de DrawerLayout hace clic - ¿Cuándo es el momento adecuado para reemplazar el fragmento?
- Cajón de navegación de estilo de diseño de Android 5.0 para KitKat
- Desactivación del cajón de navegación, cambio de botón de inicio / indicador ascendente en fragmentos
- Cómo agregar iconos adyacentes a los títulos de Android Navigation Drawer
public class SettingsFragment extends PreferenceFragment { public SettingsFragment() {} @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.prefs); } }
Y mi MainActivity :
PreferenceFragment preferenceFragment = new SettingsFragment(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(android.R.id.content, preferenceFragment); // I'm getting an error here should be Fragment not PreferenceFragment ft.commit();
¿Cómo puedo confirmar o ir al SettingsFragment ()?
- ¿Por qué DrawerLayout a veces falla al abrirse?
- Dimensión de imagen de fondo para la cabecera del cajón de navegación
- Cómo establecer el comportamiento de comprobación compartida en todos los grupos en NavigationView?
- Android - Cambiar el Botón Atrás del Botón de Navegación de ActionBar
- ¿Es este un uso correcto de Android Fragments y NavigationDrawer?
- ¿Cajón de la navegación sobre la barra de estado en turrón?
- Problemas en el uso de nuevo componente de la barra de herramientas, ocultar y mostrar Icono del cajón de navegación, icono de inicio de clic de iconos de fragmentos
- Cómo deslizar el ActionBar junto con el NavigationDrawer
Esto funcionó para mí. Sólo tenga en cuenta que este código funcionará con api leval 11 y superior.
En Actividad utilice este código para agregar Fragmento.
android.app.Fragment infoFragment = new InfoFragment(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(android.R.id.content, infoFragment); ft.commit();
Y tu clase PreferenceFragment será así.
public class InfoFragment extends PreferenceFragment { /** * The fragment argument representing the section number for this * fragment. */ private static final String ARG_SECTION_NUMBER = "section_number"; /** * Returns a new instance of this fragment for the given section * number. */ public static android.app.Fragment newInstance(int sectionNumber) { InfoFragment fragment = new InfoFragment(); Bundle args = new Bundle(); args.putInt(ARG_SECTION_NUMBER, sectionNumber); fragment.setArguments(args); return fragment; } public InfoFragment() { } }
Envuelva su actual PreferenceFragment con un fragmento simple que hace noting pero abre prefenceFragment como sigue
public class SettingsActivity extends Fragment { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getActivity().getFragmentManager().beginTransaction() .replace(android.R.id.content, new MyPreferenceFragment()) .commit(); } private class SettingsFragment extends PreferenceFragment { public SettingsFragment() {} @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.prefs); } } }
Qué tal esto:
Fragment preferenceFragment = new SettingsFragment(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(android.R.id.content, preferenceFragment); ft.commit();
- Android: establecer la altura mínima de una vista mediante programación
- Android – ¿Cómo cargar la biblioteca compartida?