Existe-t-il un moyen de mettre des options à l’intention à partir des préférences?

Salut je lance l’activité de l’écran de préférences. L’activité est partagée entre trois préférences. Je me demande si je peux définir des extras pour cette activité en xml

    

Je me demande si je peux faire quelque chose comme

    

Tout ce que je dois faire pour passer un entier vraiment. Je peux différentes actions et vérifier l’action au lieu des extras.

Comme vos extras ne sont pas des constantes, vous devez les transmettre dans le code Java au lieu de xml.

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

J’ai une réponse, vous pouvez l’utiliser comme ceci:

      

Ajoutez la préférence au fichier preference.xml:

  

Et puis vous pouvez utiliser un setOnPreferenceClickListener pour lancer un Intent avec des 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; } }); 

Il existe un champ de données pour les intentions décrites dans la documentation ici .

Il est utilisé dans l’application de démonstration API pour les préférences XML afin de lancer une intention dans l’exemple Préférences d’intention.

Exemple connexe xml de cette démo dans preferences.xml:

     

Peut-être que cette approche pourrait fonctionner pour vous?

travailler pour moi

      

Pour envoyer un email ou un tarif sur le marché, vous devez utiliser quelque chose comme:

       

Vous pouvez utiliser

    

pour envoyer les données d’intention. Ensuite, dans votre activité, utilisez simplement:

 getIntent().getDataSsortingng() 

Pas vraiment une réponse à votre question, mais très liée. Peut-être que quelqu’un le trouvera utile. Pour les nouvelles API (> 11), vous disposez d’un fichier d’en-têtes de préférences et vous pouvez définir des intentions personnalisées pour l’un des en-têtes. J’essayais d’append un Extra personnalisé à l’un des en-têtes et la solution que j’ai trouvée se présente comme suit:

Dans votre préférence-headers.xml:

 

Dans votre classe “MyPreference” (étend PreferenceActivity), vous avez:

 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(); } }