我有以下代码:
protected void showSelectToDialog() {
boolean[] checkedDate = new boolean[toDate.length];
int count = toDate.length;
DialogInterface.OnClickListener setD2 = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//TODO Auto-generated method stub
onChangeSelectedTo(which);
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select To Year");
builder.setSingleChoiceItems(toDate, count, setD2);
builder.setCancelable(true);
builder.setPositiveButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
dialog2 = builder.create();
dialog2.show();
}
protected void onChangeSelectedTo(int j) {
bTo.setText(toDate[j]);
sTo = ((AlertDialog)dialog2).getListView().getCheckedItemPosition();
blTo = true;
displayToast(String.valueOf(sTo));
to = j;
dialog2.dismiss();
}
我要做的是,当对话框第一次加载并且用户选择一个选项时,它将被存储。因此,下次用户打开对话框时,它会记住选择的内容并滚动到该选项。
我如何做到这一点?
答案 0 :(得分:1)
我看不到你的其余代码,但你所要做的就是将用户的选择保存在其他地方的变量中,然后在每次打开对话时读取该选项。它可以是类的静态变量,也可以是类的实例变量,也可以是您可以访问的其他类的公共字段,如父对象。您只需在关闭对话时指定它,然后将其读回并将值初始化为打开对话时所读取的内容。
答案 1 :(得分:1)
使用“共享首选项”首次保存所选选项的位置。
然后在showSelectToDialog()
开始时检查共享首选项中是否存在任何值,如果是,则将count
的值从共享首选项设置值count设置为toDate.length
。