Java 微调器在选择项后不更新UI和内部变量
我已经初始化了一个简单的微调器,如:Java 微调器在选择项后不更新UI和内部变量,java,android,android-spinner,Java,Android,Android Spinner,我已经初始化了一个简单的微调器,如: //Spinner as a instance varialbe monthSp = getActivity().findViewById(R.id.monthspinner); //my data List<String> month = new ArrayList<>(); for(Month m:Month.values()){
//Spinner as a instance varialbe
monthSp = getActivity().findViewById(R.id.monthspinner);
//my data
List<String> month = new ArrayList<>();
for(Month m:Month.values()){
month.add(m.getName());
}
final ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(),R.layout.spinner,month);
monthSp.setAdapter(adapter);
//initial selection works fine
monthSp.setSelection(visibleMonth-1);
//作为实例变量的微调器
monthSp=getActivity().findviewbyd(R.id.monthpinner);
//我的数据
列表月份=新建ArrayList();
对于(月份m:Month.values()){
month.add(m.getName());
}
最终ArrayAdapter=新的ArrayAdapter(getActivity(),R.layout.spinner,月);
安装适配器(适配器);
//初选很好
选举月(访问月-1);
然后我切换片段,当我回来时,我更新visibleMonth
变量,并再次设置更新的选择。
getSelectedItem()
将返回正确且更新的项目,但是微调器根本不显示任何项目
调试后,我注意到一些位置变量的状态不正确:
NextSelectedPosition()
:具有更新的正确值
OldSelectedPosition()
:具有旧的正确值
SelectedPosition()
:具有旧的和错误的值(未从下一个SelectedPosition获取更新的值)
那么这里到底发生了什么?我如何解决我的问题?还有为什么getSelectedItem()
甚至不返回iternalSelectedPosition()
值