OnItemSelectedListener呼吁屏幕旋转
-
26-09-2019 - |
题
当变更我Android中屏幕的方向,从一微调的OnItemSelectedListener被调用。
这不仅仅是模拟器,它也发生在一个物理的手机上。
如何发生停止?
干杯。
解决方案
纱厂总是选择。当有在OnItemSelectedListener
,当首次设置Spinner
包括状态的任何改变你的Spinner
将被调用。一个正常的方向变化将导致您的活动被破坏并重新创建。所以,如果当你的活动是第一次出现在屏幕上被称为你的OnItemSelectedListener
,它将被再次当方向改变时调用。
如何发生停止?
您也许能够玩的,当你调用setOnItemSelectedListener()
相比setAdapter()
的时机,来看看是否有帮助。
其他提示
您也将获得第二个电话,如果微调的selectedItemPosition不为零,当屏幕旋转时,由于Android设置的位置是什么旋转之前。的onSaveInstanceState使用计数纺纱的数目在没有零位置,并使用该计数以使OnItemSelected代码只是返回直到计数已递减到零。
您还需要与能够有View.GONE的知名度纺纱非常小心。我会在这里添加一些文字时,我能找到确切地描述如何处理这些时间。
在OnItemSelectedListener
被称为旋转器包含其适配器之前,所以你需要验证该视图是不为空内部OnItemSelected
方法,这样的:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override public void onItemSelected (AdapterView<?> parent, View view, int position, long id){
if(view != null) { // <- here is the validation
// Your code to do something with the selected item
}
}
@Override public void onNothingSelected(AdapterView<?> parent) { }
});
不隶属于 StackOverflow