【发布时间】:2021-01-05 22:15:20
【问题描述】:
我有一个包含三个微调器的布局。它们在下拉菜单中显示的选项不同。
在我的onCreateView 中,我有一种设置微调器的方法。在那个方法里面我有这样的东西:
mySpinner = (Spinner) view.findViewById(R.id.my_spinner);
ArrayAdapter<String> mySpinner =
new ArrayAdapter<String>(getActivity(), R.layout.background,
new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.spinner_one_data))));
mySpinner.setDropDownViewResource(R.layout.spinner_text);
mySpinner.setAdapter(mySpinner);
mySpinner.setOnItemSelectedListener(this);
正如我所说,我的其他两个微调器几乎相同,但选项不同。
我知道 onItemSelected 在“第一次设置”中为每个微调器调用一次,所以我有一个标志来防止这个问题。使用此标志解决方案,我的微调器按预期工作。
问题是当我在每个微调器中选择一个选项然后旋转屏幕时。现在,onItemSelected 被调用了 6 次,而不是我期望的 3 次(我设置了一个标志来管理 3 次调用的这种情况)。
为什么会发生这种情况,我应该处理这个问题吗?
【问题讨论】:
-
您是否在 mainefest 中处理过屏幕旋转
-
没有。我不想更改清单。我应该这样做吗?
-
不更改 mainefest,但添加一个处理程序来告诉应用程序不要在方向更改时重绘元素,否则重绘元素将触发我认为在您的情况下会发生的方法
-
谷歌这个。关于方向更改处理程序 - android mainefest。