2 votes

enregistrer les paramètres de l'utilisateur

Pourquoi ne souhaitez-vous pas conserver le zoom de l'appareil photo après avoir quitté l'aktivity ?

public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.menu_old);
         SharedPreferences preferences = getSharedPreferences("goodnight", MODE_PRIVATE);

           yourCheckBox = (CheckBox) findViewById( R.id.fonarb );
           yourCheckBox.setChecked(preferences.getBoolean("lol", false));
           yourCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()

        {
        @Override
        public void onCheckedChanged(CompoundButton   yourCheckBox,
                boolean isChecked) {
             if (isChecked){

                 Parameters params = camera.getParameters();
                 params.setZoom(5);
                 camera.setParameters(params);

             }
             else {     
                 Parameters params = camera.getParameters();
                 params.setZoom(0);
                 camera.setParameters(params);

             }

        }

        });

 public void onStop() {
     super.onStop();
        SharedPreferences settings = getSharedPreferences("goodnight", MODE_PRIVATE);
         SharedPreferences.Editor editor = settings.edit();
         editor.putBoolean("lol", yourCheckBox.isChecked());

         editor.commit();
    }

1voto

Snicolas Points 19644

Avez-vous essayé d'enregistrer votre listener avant de cocher la case ?

Il suffit d'intervertir les deux lignes ci-dessous :

       yourCheckBox.setChecked(preferences.getBoolean("lol", false));
       yourCheckBox.setOnCheckedChangeListener...

Pour obtenir

       yourCheckBox.setOnCheckedChangeListener...
       yourCheckBox.setChecked(preferences.getBoolean("lol", false));

Tant que vous avez un écouteur sur la case à cocher (et je vous suggère d'utiliser OnClickListener plutôt que onCheckedChange), vous ne devriez pas avoir besoin de surcharger onStop.

Mais si vous voulez surcharger onStop, je vous suggère également d'appeler super.onStop à la fin de votre propre méthode onStop plutôt qu'au début.

Par ailleurs, vous pouvez utiliser une PreferenceActivity pour enregistrer automatiquement vos options.

R Stéphane

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X