3

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

2 回答 2

0

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

于 2012-11-07T11:36:11.050 回答
0

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

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

于 2012-11-07T11:37:39.673 回答