有沒有辦法獲得有關下一個Alert.Builder中檢查項目的一些信息?當有人點擊肯定按鈕時,我需要在SharedPreferences中保存一些布爾值。這些布爾值來自用戶在警報中做出的選擇。我怎樣才能得到它們?如何從Alert.Builder中的多項選擇項中獲取選中的項目?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
final SharedPreferences preferences = getSharedPreferences("type_settings", MODE_PRIVATE);
boolean[] selectedTypes = getSelectedTypes(preferences);
builder.setIcon(R.drawable.menu_type)
.setTitle(R.string.list_dialog_title)
.setMultiChoiceItems(R.array.select_type_items, selectedTypes,
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int whichButton, boolean isChecked) {
}
})
.setPositiveButton(R.string.types_save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
SharedPreferences.Editor prefEditor = preferences.edit();
}
})
.setNegativeButton(R.string.types_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
})
.create();
builder.show();
好的解決方案。但是隻保存選定的項目到首選項是正確的方法。您正在儲存所有物品,甚至是未經檢查的物品。那麼如果它適合你的需求。 – Ronnie
我想我也會需要未經檢查的,但無論如何,我的數組並不是很大,只有15個元素。 – DaJackal
可以包含saveSelectedTypes的代碼嗎?我想將selecteditem的值保存到sharedpreferences中 – HeartlessArchangel