1
我有一個DialogFragment,顯示一週的日子和複選框。我的問題很簡單(但我不能這樣做)如何在保存我的選擇時再次打開DialogFragment我可以看到上次啓用的日子。如何顯示在DialogFragment中回滾時檢查的項目
因爲我不能做這樣的事情mSelectedItems.add(which).setChecked(true)。
在此先感謝。
public class DayFragment extends DialogFragment {
protected String[] listitems = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final ArrayList mSelectedItems = new ArrayList(); // Where we track the selected items
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMultiChoiceItems(listitems, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
// If the user checked the item, add it to the selected items
mSelectedItems.add(which);
if(listitems[which].equals("Monday")){
Toast.makeText(getActivity(), listitems[which], Toast.LENGTH_SHORT).show();
}
} else if (mSelectedItems.contains(which)) {
// Else, if the item is already in the array, remove it
mSelectedItems.remove(Integer.valueOf(which));
if(listitems[which].equals("Monday")){
Toast.makeText(getActivity(), "Unchecked " + listitems[which], Toast.LENGTH_SHORT).show();
}
}
}
})
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
});
return builder.create();
}
爲什麼不將選定的值保存到SharedPreferences中? – 4gus71n
我在首選項中設置了該值,但是當我回來打開對話框時,所有的checboxes都不可用 –
您不應該將這些值保留在負責打開該對話框片段的活動或片段上嗎? –