2016年6月17日 星期五

偏好設定_Preferences



public class MainActivity extends Activity {

private EditText medtName, medtAge;
private RadioGroup mradgrp;
private RadioButton mr1, mr2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

medtName = (EditText) findViewById(R.id.edtName);
medtAge = (EditText) findViewById(R.id.edtAge);
mradgrp = (RadioGroup) findViewById(R.id.radgrp);
mr1 = (RadioButton) findViewById(R.id.r1);
mr2 = (RadioButton) findViewById(R.id.r2);
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();

SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();  // 取得編輯器物件
editor.putString("姓名", medtName.getText().toString());              // 以字串型態儲存
editor.putInt("年齡", Integer.parseInt(medtAge.getText().toString()));                 // 以數字型態儲存

switch (mradgrp.getCheckedRadioButtonId()) {
case R.id.r1:
editor.putBoolean("性別", true);        // 以布林型態儲存
break;
case R.id.r2:
editor.putBoolean("性別", false);        // 以布林型態儲存
break;
}
editor.commit();
}

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();

SharedPreferences myRecord = getPreferences(MODE_PRIVATE);
medtName.setText(myRecord.getString("姓名", "無資料")); // 以「姓名」為 key 取值,若查無資料則回傳「無資料」字串。
medtAge.setText(Integer.toString(myRecord.getInt("年齡", 0)));          // 以「年齡」為 key 取值,若查無資料則回傳數值「0」。

if (myRecord.getBoolean("性別", true)) { // 以「性別」為 key 取值,若查無資料則回傳布林值「true」。
mr1.setChecked(true);
} else {
mr2.setChecked(true);
}
}

}






範例下載

沒有留言: