繁体   English   中英

更改屏幕方向时保持微调器位置

[英]Keep spinner position when screen orientation is changed

屏幕旋转时我想保持微调器位置

我已经在这里查看了一些答案,到目前为止,以下内容

目的-存储微调器的位置

protected void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    flav1Spinner = (Spinner)findViewById(R.id.Combo_InvChoice1);
    Integer flav1 = flav1Spinner.getSelectedItemPosition();
    savedInstanceState.putInt("cho1", flav1);
}

目标-恢复位置

 protected void onCreate(Bundle savedInstanceState)
 {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calculation);
    Locale.setDefault(Locale.US);
   if (savedInstanceState != null){
        flav1Spinner = (Spinner)findViewById(R.id.Combo_InvChoice1);
        Integer flav1 = savedInstanceState.getInt("cho1");
        flav1Spinner.setSelection(flav1);
    }

但是,在调试时,我可以看到Integer Flav1正在为其分配一个值,并且正在检索数字,但是微调器没有更改其位置。 有什么建议么?

您可以通过onSaveInstanceState() ,如下所示

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("yourSpinner", yourSpinner.getSelectedItemPosition());
    // do this for each of your Spinner

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
        yourSpinner.setSelection(savedInstanceState.getInt("yourSpinner", 0));
        // do this for every text views
    }
}

选中保存活动状态 ,它将帮助您获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM