我創建了一個包含兩個按鈕的收音機組,我可以選擇一個並保存它,它工作正常,在關閉應用程序後仍然存儲。我想要做的是使用另一個類中單選按鈕的值。這裏是一個包含共享偏好代碼我設置類:如何從另一個類訪問共享首選項布爾值
public class Settings extends Activity {
private String settingsTAG = "AppNameSettings";
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
prefs = getSharedPreferences(settingsTAG, 0);
final RadioButton rb0 = (RadioButton) findViewById(R.id.radioInternetYes);
final RadioButton rb1 = (RadioButton) findViewById(R.id.radioInternetNo);
rb0.setChecked(prefs.getBoolean("rb0", true));
rb1.setChecked(prefs.getBoolean("rb1", false));
Button btnSave = (Button) findViewById(R.id.btnSave);
btnSave.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
prefs = getSharedPreferences(settingsTAG, 0);
Editor editor = prefs.edit();
editor.putBoolean("rb0", rb0.isChecked());
editor.putBoolean("rb1", rb1.isChecked());
editor.commit();
finish();
}
});
}
在另一類我想檢查是否點擊一個按鈕,當RB0是真還是假:
share.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
if(rb0 = true){
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{""});
i.putExtra(Intent.EXTRA_SUBJECT, "Check out my awesome score!");
i.putExtra(Intent.EXTRA_TEXT , "I am playing this awesome game called Tap the Button, and I just scored the incredible highscore of " +s+ " Taps!!\n\nCan you beat it!?");
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(FailScreen.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
}
else{
//Display warning that rb0 is false
}
}
});
我已經研究#1和開發人員的文檔,但我似乎無法找到如何做到這一點,任何意見表示讚賞。
謝謝
謝謝您的回答!一個我不明白的是如何使用這個類的設置,我是否需要創建一個這樣的實例,以便我可以從其他類訪問它?使用你的代碼我得到一個錯誤,因爲它不知道什麼設置,我只是不知道如何訪問這個類的設置。 謝謝! – deucalion0
對不起,我忘了在示例代碼中聲明SharedPreferences。是的,你需要在這個類中創建它的一個實例。我編輯了這個響應來創建一個類似於你的發佈代碼的實例。 – Jon
這完美的作品!謝謝! :) 我正在嘗試各種瘋狂的東西,它會花我一段時間來找出這些代碼行!你救了我很多麻煩謝謝! :) – deucalion0