在Android的多选对话框中保留旋转时的选择,可以通过以下步骤实现:
android:configChanges="orientation"
属性,以告知系统在屏幕旋转时不重新创建Activity。onConfigurationChanged()
方法,以处理屏幕旋转事件。在该方法中,可以保存当前选中的选项,并在屏幕旋转后重新设置选中状态。下面是一个示例代码:
public class MainActivity extends AppCompatActivity {
private boolean[] checkedItems; // 保存选中状态的数组
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化选中状态数组
checkedItems = new boolean[3];
Arrays.fill(checkedItems, false);
// 显示多选对话框
showMultiChoiceDialog();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// 屏幕旋转后重新设置选中状态
showMultiChoiceDialog();
}
private void showMultiChoiceDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("多选对话框");
builder.setMultiChoiceItems(R.array.items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// 更新选中状态数组
checkedItems[which] = isChecked;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理确定按钮点击事件
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理取消按钮点击事件
}
});
builder.show();
}
}
在上述代码中,onCreate()
方法中初始化了选中状态数组checkedItems
,并调用showMultiChoiceDialog()
方法显示多选对话框。在onConfigurationChanged()
方法中,重新调用showMultiChoiceDialog()
方法,以保留旋转时的选择。
请注意,以上示例代码仅为演示如何保留旋转时的选择,实际应用中可能需要根据具体需求进行适当修改。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云