Excepción de tiempo de ejecución al utilizar la configuración de Android (estoy siguiendo el curso de desarrollo de Android de udacity)
Soy nuevo en android y siguiendo el curso de desarrollador Android de Udacity para aprender. Estoy en el capítulo 3 donde enseñan sobre la adición de los ajustes en su aplicación. He añadido el SettingActivity desde el estudio android. Cuando hago clic en el menú de configuración, mi aplicación se bloquea. Este es mi archivo pref_general.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <!-- NOTE: EditTextPreference accepts EditText attributes. --> <!-- NOTE: EditTextPreference's summary should be set to its value by the activity code. --> <EditTextPreference android:key="@string/pref_location_key" android:defaultValue="@string/pref_location_default" android:maxLines="1" android:inputType="text" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_location_label" />
He realizado estos cambios en SettingActivity
- Añadir opaco "sombra" (esquema) a Android TextView
- Cómo ejecutar una aplicación en primer plano en las versiones de Android inferiores a 5.1
- Java.net.ConnectException: no se pudo conectar con /192.168.253.3 (puerto 2468): connect failed: ECONNREFUSED (Connection refused)
- Error en la verificación de la firma de Android LVL
- ¿Es necesario establecer los oyentes de la interfaz Fragment a null en detach?
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupActionBar(); addPreferencesFromResource(R.xml.pref_general); bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_location_key)));}
Estoy recibiendo la siguiente excepción cuando hago clic en el menú Configuración
Process: com.example.android.sunshine.app, PID: 10131 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.sunshine.app/com.example.android.sunshine.app.SettingsActivity}: java.lang.RuntimeException: Modern two-pane PreferenceActivity requires use of a PreferenceFragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413) at android.app.ActivityThread.access$800(ActivityThread.java:155) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5343) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) Caused by: java.lang.RuntimeException: Modern two-pane PreferenceActivity requires use of a PreferenceFragment at android.preference.PreferenceActivity.requirePreferenceManager(PreferenceActivity.java:1441) at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1511) at com.example.android.sunshine.app.SettingsActivity.onCreate(SettingsActivity.java:124) at android.app.Activity.performCreate(Activity.java:6010) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413) at android.app.ActivityThread.access$800(ActivityThread.java:155) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5343) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
¿Alguna ayuda? Lo siento si es algo muy ingenuo
- Compensaciones para datos por vértice intercalados en OpenGL ES en Android
- Activar / desactivar mediante programación modo inmersivo
- HorizontalGridView / RecyclerLa posición de desplazamiento se restablece una vez que la imagen de Picasso se carga
- ¿Limpiar automáticamente LogCat en cada depuración / ejecución de Eclipse?
- ¿Cuál es el uso del permiso de Android Wake Lock?
- Volumen de audio de Android webRTC
- La ampliación / transformación de lienzo de Android no modifica el área seleccionada
- Compruebe si DAY_OF_WEEK es entre el lunes y el viernes
Pude resolver esto.
Yo estaba cambiando el OnCreate de mi SettingActivity en vez de cambiar mi OnCreate de SettingFragment que es la clase privada estática de SettingActivity.
@mayank agrawal
Quiso decir que los cambios deben hacerse en clase que extiende PreferenceFragment. Es decir, tendrás que extender PreferenceFragment.
Aunque el código es bastante explicativo en el sitio de desarrolladores , aquí he tomado parte de sólo mencionar lo que quería decir (poniendo comentarios en el código).
public class PreferenceWithHeaders extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... } //static class extending PreferenceFragment public static class Prefs1Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PreferenceManager.setDefaultValues(getActivity(), R.xml.advanced_preferences, false); // Here's where you've to load the preferences from an XML resource addPreferencesFromResource(R.xml.fragmented_preferences); } } private void private void bindPreferenceSummaryToValue(Preference preference) { ... } }
Si su aplicación admite API 10 o baja, es obligatorio utilizar la actividad de preferencias. Sin embargo, también puede utilizar esa forma obsoleta en la nueva API también. Aquí está una explicación agradable en los detalles para los principiantes.
(Yo también estoy aprendiendo Así que si alguien experto encuentra algún error, entonces avísame.)
- Desactivar Google Analytics de los informes de pre-lanzamiento de Android
- Vista personalizada de Android Center en la barra de acciones