studio programacion herramientas fundamentos con avanzado aplicaciones android android-intent intentfilter extras

programacion - manual de android en pdf



¿Hay alguna forma de agregar extras a la intención de las preferencias? (8)

Agregue la preferencia al archivo preference.xml:

<Preference android:title="user" android:key="user"/>

Y luego puede usar setOnPreferenceClickListener para iniciar un Intento con extras.

Preference userButton = (Preference) findPreference("user"); userButton.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { Intent intent = new Intent(getActivity(), YourTargetActivity.class); intent.putExtra(EXTRA, mUser); startActivity(intent); return true; } });

Hola, estoy lanzando actividad desde la pantalla de preferencias. La actividad se comparte entre tres preferencias. Me pregunto si puedo configurar extras para esta actividad en xml

<Preference android:key="action_1" android:title="@string/action_1_title" > <intent android:action="com.package.SHAREDACTION" > </intent> </Preference>

Me pregunto si puedo hacer algo como

<extras> <item android:name="" android:value=""/> </extras>

Todo lo que necesito hacer para pasar un entero realmente. Puedo diferentes acciones y control de acción en lugar de extras.


Como sus extras no son constantes, debe pasarlos en el código java en lugar de xml.

Intent intent = new Intent( this, YourTargetActivity.class ); intent.putExtra( EXTRAS_KEY, extras ); yourPref.setIntent( intent );


Hay un campo de datos para los intentos descritos en la documentación here .

Se utiliza en la aplicación de demostración API para las preferencias XML para iniciar un intento en el ejemplo de Preferencias de intención.

Ejemplo relacionado xml de esa demostración en preferences.xml:

<PreferenceScreen android:title="@string/title_intent_preference" android:summary="@string/summary_intent_preference"> <intent android:action="android.intent.action.VIEW" android:data="http://www.android.com" /> </PreferenceScreen>

Tal vez este enfoque podría funcionar para usted?


No es realmente una respuesta a tu pregunta, pero está muy relacionada. Quizás alguien lo encuentre útil. Para una API más nueva (> 11), tiene un archivo de encabezados de preferencia y puede definir intenciones personalizadas para uno de los encabezados. Estaba intentando agregar un extra personalizado a uno de los encabezados y la solución que encontré es la siguiente:

En su preferencia-headers.xml:

<header android:fragment="com.mypackage.MyPreference$Prefs1Fragment" android:title="Intent" android:summary="Launches an Intent."> </header>

En su clase "MyPreference" (extiende PreferenceActivity) tiene:

public static class Prefs1Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent(getActivity(), MyTargetActivity.class); // set the desired extras, flags etc to the intent intent.putExtra("customExtra", "Something that I used to know"); // starting our target activity startActivity(intent); // ending the current activity, which is just a redirector to our end goal getActivity().finish(); } }


Para enviar un correo electrónico o calificar en el mercado, debe usar algo como

<Preference android:title="@string/title_intent_preference" android:summary="@string/summary_intent_preference"> <intent android:action="android.intent.action.VIEW" android:data="market://details?id=com.your_package" /> </Preference> <Preference android:title="@string/title_intent_preference" android:summary="@string/summary_intent_preference"> <intent android:action="android.intent.action.VIEW" android:data="mailto:[email protected]" /> </Preference>


Puedes usar

<PreferenceScreen android:title="@string/title_intent_preference" android:summary="@string/summary_intent_preference"> <intent android:action="android.intent.action.VIEW" android:data="hello world" /> </PreferenceScreen>

para enviar los datos de intención. Luego, en su actividad simplemente use:

getIntent().getDataString()


Recibí una respuesta, puedes usarla así:

<Preference android:key="xxx" android:title="xxx" android:summary="xxx"> <intent android:action="xxx" > <extra android:name="xxx" android:value="xxx" /> </intent> </Preference>


trabajando para mi

<shortcut android:enabled="true" android:icon="@mipmap/xxx" android:shortcutDisabledMessage="@string/xxx" android:shortcutId="xxxx" android:shortcutLongLabel="xxx" android:shortcutShortLabel="xxx"> <intent android:action="android.intent.action.VIEW" android:targetClass="xxx" android:targetPackage="xxx"> <extra android:name="intent_name" android:value="true" /> </intent> </shortcut>