如何初始化不确定数量的Spinners?

时间:2016-11-14 16:31:41

标签: android android-spinner

我正在制作一款允许用户创建健身目标的应用。该应用程序要求用户输入他们感兴趣的许多活动(例如跑步,举重,骑自行车)。接下来,它进入一个屏幕,在那里它询问每个活动的目标(例如“减肥”,“散装”,“玩得开心”)。我希望第二个屏幕是由不确定数量的Spinners组成的ScrollView,每个Spinners都包含一组预先编写的目标。目前,我假设只选择了五个利益。我这样做:

goalSpinners = new Spinner[numInterests];
goalSpinners[0] = (Spinner) view.findViewById(R.id.firstSpinner);
goalSpinners[1] = (Spinner) view.findViewById(R.id.secondSpinner);
goalSpinners[2] = (Spinner) view.findViewById(R.id.thirdSpinner);
goalSpinners[3] = (Spinner) view.findViewById(R.id.fourthSpinner);
goalSpinners[4] = (Spinner) view.findViewById(R.id.fifthSpinner);

当选择了五个以上的兴趣时,这当然是一个问题。如何在ScrollView中加载 n Spinner的地方?

1 个答案:

答案 0 :(得分:0)

收集第一个屏幕中的活动数量,将此数字发送到第二个屏幕,您可以根据此数字创建一个Spinners数组。通过这种方式,将根据用户输入动态定义微调器的数量。

要将数据从一个Activity发送到另一个Activity,您可以使用Bundle(https://developer.android.com/reference/android/os/Bundle.html

使用由单个元素组成的listview / recyclerView,每个元素由微调器和其他控件组成。

您可以参考本教程创建自定义列表视图http://androidexample.com/How_To_Create_A_Custom_Listview_-_Android_Example/index.php?view=article_discription&aid=67

相应地修改它以包含您的微调器。这样,您需要的微调器数量将根据活动数量动态创建,您可以根据该列表元素的位置访问每个微调器。