Java 从AlertDialog保存不同的值
我在我的应用程序中设置了许多变量(如姓名、年龄等)。单击设置项后,我想打开带有要设置的选项的警报对话框。每个变量将在不同的警报对话框中设置。因为我不想在所有Java 从AlertDialog保存不同的值,java,android,android-alertdialog,Java,Android,Android Alertdialog,我在我的应用程序中设置了许多变量(如姓名、年龄等)。单击设置项后,我想打开带有要设置的选项的警报对话框。每个变量将在不同的警报对话框中设置。因为我不想在所有onClick事件中复制警报对话框代码,所以我制作了一个通用警报对话框,在其中发送标题和值数组。选择选项后,我希望通过setter保存该值 问题是,从OnClickListener中,我无法通过return获取值,并且每个变量的设置器都不同,因此我无法在OnClickListener中调用它们 达到这个目标最干净的方法是什么?目前,我唯一的选
onClick
事件中复制警报对话框代码,所以我制作了一个通用警报对话框,在其中发送标题和值数组。选择选项后,我希望通过setter保存该值
问题是,从OnClickListener中,我无法通过return
获取值,并且每个变量的设置器都不同,因此我无法在OnClickListener
中调用它们
达到这个目标最干净的方法是什么?目前,我唯一的选择是将OnClickListener
中的值保存到SharedReferences,并在调用对话框的onClick
方法中使用setter。无论如何,在我看来,这不是最好的做法
提前感谢您的想法
编辑:下面的我的代码
警报对话框
警报对话框的调用方式如下所示。这种类型的代码对每个变量使用多次
/**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);
通过用户类中的setter保存值。该类包含名称、年龄等变量。您能否共享代码片段以更好地理解它,因为我无法完全理解您的期望。我使用Dialog Fragment和View Model将其放在原始postTry中,以在Dialog中传递数据
/**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);