2011-07-14 8 views
0

Je les préférences paramétrées en xml et j'ai l'activité que vous avez choisi:Préférences partagées personnalisée Android

public class Preferencias extends PreferenceActivity { 

//SharedPreferences prefs; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    addPreferencesFromResource(R.xml.preferences); 

    setContentView(R.layout.preferences); 

    Button bt=(Button)findViewById(R.id.selectPic); 
    TextView tv=(TextView) findViewById(R.id.textView1); 
    String def=getResources().getString(R.string.noDefinido); 
    tv.setText(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("logo", def)); 


    bt.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(Intent.ACTION_VIEW); 

       intent.setClassName(getApplicationContext(), 
         SDCardImagesActivity.class.getName()); 
       startActivity(intent); 
     } 
    }); 

    //habra que sacarlo de la red 
    String [] ofis ={"Venus", "Europa"}; 
    ListPreference lp=new ListPreference(this); 
    lp.setValue("oficina"); 
    lp.setEntries(ofis); 
    lp.setEntryValues(ofis); 
    lp.setTitle(R.string.oficina); 
    lp.setDefaultValue(ofis[1]); 


    getPreferenceScreen().addPreference(lp); 


} 
} 

Il fonctionne très bien avec les préférences xml mais je dois aussi ajouter une préférence dans le code la raison de celui-ci est que les options de cette ListPreference viendront de la base de données (ici j'ai le tableau String pour l'instant). Le problème est que les données modifiées pour cette préférence ne sont pas conservées. Quand je fais les changements j'appuie sur le bouton de retour je reviens la valeur retourne à la valeur par défaut. Comment pourrais-je m'assurer que cette préférence est sauvegardée aussi?

Merci beaucoup

Répondre

1

J'inclus résolu la préférence sans mettre en place ses données puis dans le code:

String [] ofis ={"Venus", "Europa"}; 
ListPreference lp=(ListPreference) getPreferenceManager().findPreference("oficina"); 
lp.setEntries(ofis); 
lp.setEntryValues(ofis); 
lp.setDefaultValue(ofis[1]); 

fonctionne bien maintenant

Questions connexes