禁用微调器之前的`OnItemSelected`调用

时间:2015-01-29 17:03:23

标签: android spinner

我有一个ViewPager有10个“页面”,在其中一个“页面”(第9页)中我有一些spinners

当我在spinners的页面上时,我有一个标志,以便在初始微调器设置中不会触发`onItemSelected'。

然后我使用了一些spinners并选择了一些选项(在一个spinners中我选择了第二个选项而另一个选择了第三个选项)。他们按预期工作。然后我导航到第1页。现在,当我返回到spinners的页面时,onCreateView再次被调用,我再次设置了微调器:

firstSpinner = (Spinner) view.findViewById(R.id.myfirstspinner);
ArrayAdapter<String> myAdapter =
        new ArrayAdapter<String>(getActivity(), R.layout.background,
                new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.firstSpinnerOptions))));

myAdapter.setDropDownViewResource(R.layout.spinnerlayout);
firstSpinner.setAdapter(myAdapter);
firstSpinner.setOnItemSelectedListener(this);
firstSpinner.setSelection(0);

我为所有纺纱厂做这件事。

再次,我设置了标志,以便在初始设置时不会触发`onItemSelected'。

问题是,正如我之前所说,我第一次在页面上选择了一些选项。现在,onItemSelected´ is called with the previous options and the spinners firstSpinner.setSelection(0);`被先前选择的选项覆盖。

如何禁用之前的通话?

1 个答案:

答案 0 :(得分:0)

尝试在onResume中运行你的函数。 当你滑动布局时,oncreate并不总是运行。

@Override
public void onResume() {
    super.onResume();
// your function
}