0

私は 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 配列があります)。問題は、この設定で変更されたデータが保持されないことです。変更を加えると、戻るボタンを押して戻ってきて、値がデフォルト値に戻ります。この設定も確実に保存するにはどうすればよいですか?

どうもありがとう

4

1 に答える 1

1

解決済み データを設定せずに設定をコードに含めました:

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

今は正常に動作します

于 2011-09-02T11:42:24.847 に答える