Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义共享首选项Android_Android_Sharedpreferences_Preference_Listpreference - Fatal编程技术网

自定义共享首选项Android

自定义共享首选项Android,android,sharedpreferences,preference,listpreference,Android,Sharedpreferences,Preference,Listpreference,我已经用xml设置了首选项,我有以下活动: public class Preferencias extends PreferenceActivity { //SharedPreferences prefs; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.prefe

我已经用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 [] ofis ={"Venus", "Europa"}; 
ListPreference lp=(ListPreference) getPreferenceManager().findPreference("oficina");  
lp.setEntries(ofis); 
lp.setEntryValues(ofis); 
lp.setDefaultValue(ofis[1]); 
现在一切正常