Me gustaría poder lanzar una segunda pantalla de preferencias desde mi actividad de preferencia. Y en la pantalla 2nd Preference me gustaría usar un diseño predefinido de xml. Entonces, tengo dos preguntas:Android: lanzar una preferencia personalizada desde una actividad de preferencia
¿Cómo uso un diseño xml como la vista de diseño de una preferencia? ¿Cómo agrego esta preferencia personalizada a una actividad de preferencia tal que se inició cuando se tocó?
Gracias
* EDITAR en respuesta a ALibi
Estoy tratando de poner en marcha una actividad de una pantalla de preferencias, al declarar la actividad que será lanzado en XML. Esto causa esta excepción:
04-01 19:04:37.962: ERROR/AndroidRuntime(8061): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.me/CustomPrefScreen}; have you declared this activity in your AndroidManifest.xml?
* Otra actualización. Sin embargo, si reemplazo PrefrenceScreen en settings.xml con alguna extensión de Preference, que anula onClick() para iniciar CustomPrefScreen, todo funciona bien. actividad
principales preferencias:
public class MyPreferences extends PreferenceActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
settings.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen
android:summary="my summary"
android:title="my title">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.me"
android:targetClass="CustomPrefScreen"/>
</PreferenceScreen>
</PreferenceScreen>
archivo mainfest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.me"
android:versionCode="1"
android:versionName="1.0">
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/Theme.NoBackground">
<activity
android:name=".MyApp"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".CustomPrefScreen"
android:label="@string/app_name">
</activity>
<activity
android:name=".MyPreferences"
android:label="@string/app_name">
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
Ambas cosas están bien explicado en el ejemplo Api Demos. Lo curioso es que está en el directorio SDK, por lo tanto, tiene los ejemplos en su disco duro en este momento. – Cristian
¿Necesitas absolutamente las otras preferencias para ser una segunda actividad? Si solo quieres más de una pantalla, ¿tal vez simplemente usar una pantalla PreferenceScreen? – slund
@Slund. Me gustaría usar PreferenceScreen, pero no estoy seguro de cómo usar un diseño xml personalizado para él; parece que solo se pueden agregar vistas de tipo Preferencia? – ab11