Пользовательские общие настройки Android - PullRequest
0 голосов
/ 14 июля 2011

Я установил предпочтения в xml, и у меня есть следующее действие:

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


}
}

Он отлично работает с предпочтениями xml, но мне также нужно добавить предпочтение в коде, причина в том, чтопараметры этого ListPreference будут исходить из базы данных (здесь у меня есть массив String).Проблема в том, что данные, измененные для этого предпочтения, не сохранились.Когда я делаю изменения, я нажимаю кнопку возврата, я возвращаюсь, значение возвращается к значению по умолчанию.Как я могу убедиться, что это предпочтение тоже сохранено?

Большое спасибо

1 Ответ

1 голос
/ 02 сентября 2011

решено Я включил предпочтение без настройки его данных, затем в коде:

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

теперь отлично работает

...