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