Android Saving复选框首选项

时间:2012-11-07 11:33:12

标签: android checkbox sharedpreferences

我疯了,在我的项目中保存一组复选框的状态。 想象一组8复选框,用户必须检查或不记住类似集合的东西。 这就是我所取得的成就......但几乎没有用。我粘贴了班级的所有代码。 对不起,如果我没有使用好代码块..我真的不明白如何.. 谢谢。

package com.example.eurocollection; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; public class Francia extends Activity { // Identificatore delle preferenze dell'applicazione private final static String MY_PREFERENCES = "MyPref"; // Costante relativa al nome della particolare preferenza private final static String TEXT_DATA_KEY = "textData"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_francia); updatePreferencesData();//carica le preferenze getActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_francia, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } //come salvare le preferenze public void savePreferencesData(View view) { // Otteniamo il riferimento alle Preferences SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE); // Otteniamo il corrispondente Editor SharedPreferences.Editor editor = prefs.edit(); // Modifichiamo il valore con quello inserito nell'EditText //EditText outputView = (EditText) findViewById(R.id.inputData); CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox2efrance99); cb1.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener(){ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ editor.putBoolean("MY_PREFERENCES", cb1.isChecked()); cb1.setChecked(settings.getBoolean("MY_PREFERENCES",true)); } } }); updatePreferencesData(); } // fine copiato private void updatePreferencesData(){ // Leggiamo le Preferences SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE); // Leggiamo l'informazione associata alla proprietà TEXT_DATA Boolean textData = prefs.getBoolean(TEXT_DATA_KEY, false); // Lo impostiamo alla TextView CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox2cfrance99); cb1.setChecked(textData); } }

2 个答案:

答案 0 :(得分:0)

那么你在哪里调用savePreferencesData()方法? 哪个是editor.commit()?

答案 1 :(得分:0)

您需要致电editor.commit(),以便您实际所做的任何更改都会发生。

putBoolean之后执行此操作,它应该有效。