Java 屏幕旋转后,恢复碎片中的微调器位置
正如我在标题中所写,我希望在屏幕旋转后恢复微调器中的选定位置。尝试将位置保存在bundle中,并在中旋转后从Java 屏幕旋转后,恢复碎片中的微调器位置,java,android,android-fragments,spinner,screen-rotation,Java,Android,Android Fragments,Spinner,Screen Rotation,正如我在标题中所写,我希望在屏幕旋转后恢复微调器中的选定位置。尝试将位置保存在bundle中,并在中旋转后从savedInstanceState获取位置 或 或 但没有人工作:-/ 加反射反射 public类AddRecipeFragment扩展片段实现ObservableScrollViewCallbacks{ 私有静态最终字符串SELECTED\u CATEGORY=“SELECTED\u CATEGORY”; 私有微调器分类微调器; @凌驾 创建视图上的公共视图(布局、充气机、视图组
savedInstanceState
获取位置
或
或
但没有人工作:-/
加反射反射
public类AddRecipeFragment扩展片段实现ObservableScrollViewCallbacks{
私有静态最终字符串SELECTED\u CATEGORY=“SELECTED\u CATEGORY”;
私有微调器分类微调器;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
返回充气机。充气(R.layout.fragment\u add\u配方,容器,假);
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
super.onViewCreated(视图,savedInstanceState);
categoriespinner=(微调器)view.findViewById(R.id.categories\u微调器);
ArrayAdapter=ArrayAdapter.createFromResource(getActivity(),R.array.categories,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
categoriesPinner.setAdapter(适配器);
如果(savedInstanceState!=null){
CategoriesPinner.setSelection(savedInstanceState.getInt(SELECTED_CATEGORY,0),true);
}
}
@凌驾
SaveInstanceState上的公共无效(束超出状态){
super.onSaveInstanceState(超出状态);
outState.putInt(SELECTED_CATEGORY,categoriespinner.getSelectedItemPosition());
}
}
我还尝试了
setSelection(position,false)
和false如果这一切都失败了,为什么不使用静态变量
private static int selectedPosition = 0;
以及选择微调器项时
categoriesSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedPosition = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
如果所有这些都失败了,为什么不使用静态变量
private static int selectedPosition = 0;
以及选择微调器项时
categoriesSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedPosition = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
categoriesSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedPosition = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
categoriesSpinner.setSelection(selectedPosition);