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;
        }
    }
      
    

      

    学会勇敢
  • 相关阅读:
    [noip2010]关押罪犯 并查集
    双栈排序 noip2008
    欧拉函数
    中国剩余定理(孙子定理)
    求组合数
    线性素数筛
    洛谷 P2661 信息传递
    图的最短路
    Mzc和男家丁的游戏
    最佳旅游线路
  • 原文地址:https://www.cnblogs.com/Sir-Lin/p/6406108.html
Copyright © 2011-2022 走看看