当变更我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) { }
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top