Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从AlertDialog保存不同的值_Java_Android_Android Alertdialog - Fatal编程技术网

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);