Android 保存复选框首选项

标签 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); } }

最佳答案

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

关于Android 保存复选框首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268916/

相关文章:

php - 从数据库读取值后显示选中和未选中的复选框列表不起作用

android - 服务——为共享首选项声明静态字符串的最佳位置

java - 如何在我的 list 中正确设置多个 applicationIds 或包名称

java - Android 应用程序在从菜单项调用方法时崩溃

java - 列表 Activity 崩溃

jQuery Validate - 仅当选中单选按钮时,才会选中一组复选框中的至少一个

按钮上的 jQuery UI 1.9 工具提示在悬停时不起作用

android - SharedPreferences 中的字符串数组

java - 不安全或未经检查的操作警告

android - 自定义搜索android中的联系人