zoukankan      html  css  js  c++  java
  • ListView 在设备切换横竖屏时保存状态

    比如listview在设备切换横竖屏时,仍然需要保证position,

    activity - > onSaveInstanceState  - > restoreInstanceState

    view  - > onSaveInstanceState  - > restoreInstanceState

    // YourActivity.java
    private static final String LIST_STATE = "listState";
    private Parcelable mListState = null;
    
    // Write list state to bundle
    @Override
    protected void onSaveInstanceState(Bundle state) {
        super.onSaveInstanceState(state);
        mListState = getListView().onSaveInstanceState();
        state.putParcelable(LIST_STATE, mListState);
    }
    
    // Restore list state from bundle
    @Override
    protected void onRestoreInstanceState(Bundle state) {
        super.onRestoreInstanceState(state);
        mListState = state.getParcelable(LIST_STATE);
    }
    
    
    @Override
    protected void onResume() {
        super.onResume();
        loadData(); // 确保数据重新加载,并在daapter中刷新
        // 在api call 的success 的回调中restoreState
        if (mListState != null) {
            myListView.onRestoreInstanceState(mListState);
            mListState = null;
        }
    }
      
    

      

    学会勇敢
  • 相关阅读:
    GNU C的定义长度为0的数组
    Ubuntu如何启用双网卡
    DQN 文章第一篇
    awk用法
    Linux下C结构体初始化
    Linux kernel中的list怎么使用
    从美剧中学(1)
    Python @property 属性
    p40_数据交换方式
    3.TCP协议
  • 原文地址:https://www.cnblogs.com/Sir-Lin/p/6406108.html
Copyright © 2011-2022 走看看