作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个显示复选框列表的对话框。我想在每次显示对话框时设置不同的复选框。但这只在第一次有效。我希望它在每次显示对话框时都能正常工作!如果有人可以提供帮助,那就太好了...
这是我的代码:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case CHECKBOX_LIST_DIALOG:
final CharSequence[] weeks = new CharSequence[53];
for (int i=0; i<=52; i++) {
weeks[i] = String.valueOf(i+1);
}
return new AlertDialog.Builder(this).setTitle(
R.string.txt_week_checkbox_list).setMultiChoiceItems(
weeks, getCheckedBoxes(),
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int whichButton, boolean isChecked) {
checked[whichButton] = isChecked;
}
}).setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
EditText editText = (EditText) findViewById(R.id.edittext_weeks);
editText.setText(generateString());
}
}).setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
}
}).create();
}
最佳答案
通过 onCreateDialog()
创建的托管对话框被缓存。您将需要覆盖 onPrepareDialog()
,以便您可以控制下次显示对话框的时间。您将获得 Dialog
对象。将其转换为 AlertDialog
,调用 getListView()
,并使用 setItemChecked()
打开或关闭每个复选框。
关于android - 为复选框列表对话框设置复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060031/
我是一名优秀的程序员,十分优秀!