【问题标题】:Android Saving checkbox preferencesAndroid 保存复选框首选项
【发布时间】:2012-10-27 11:04:39
【问题描述】:

我要疯了才能在我的项目中保存一组复选框的状态。 想象一组 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); } }

【问题讨论】:

  • 我没有看到 commit() 在任何地方的首选项编辑器上调用。

标签: android checkbox sharedpreferences


【解决方案1】:

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

【讨论】:

  • 那是因为我不明白如何正确使用它们。
【解决方案2】:

您需要致电editor.commit(),这样您所做的任何更改才会真正发生。

putBoolean 之后执行此操作,它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-26
    • 2014-05-03
    • 1970-01-01
    • 2015-12-07
    • 2014-12-01
    • 1970-01-01
    • 2012-03-29
    • 2016-09-03
    相关资源
    最近更新 更多