如何解决从 AlertDialog 保存不同的值
我在我的应用程序中设置了许多要设置的变量(如姓名、年龄等)的活动。单击设置项后,我想打开带有要设置选项的警报对话框。每个变量都将在不同的警报对话框中设置。由于我不想在所有 onClick
事件中复制警报对话框代码,因此我制作了一个通用警报对话框,用于发送标题和值数组。选择选项后,我想通过setter保存值。
问题是,从 OnClickListener 中,我无法通过 return
获取值,并且每个变量的 setter 都不同,因此我无法在 OnClickListener
中调用它们。
达到这个目标的最干净方法是什么?目前,我唯一的选择是将 OnClickListener
中的值保存到 SharedPreferences 并在调用对话框的 onClick
方法中使用 setter。无论如何,在我看来这不是最佳实践。
提前感谢您的想法。
编辑:我的代码如下
警报对话框
private void showAlertDialog(final Context context,String title,final int array) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setSingleChoiceItems(array,-1,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
/**Not sure what to do here*/
/**Maybe save selected item to SharedPref*/
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
警报对话框的调用方式如下所示。这种类型的代码对于每个变量都会多次使用。
/**Call showAlertDialog; send context,TextView text for dialog title and array for options*/
TextView tv = findViewById(R.id.Settings_Tv_EyeColor);
showAlertDialog(Settings.this,tv.getText().toString(),R.array.array_eyeColor);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。