灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2390回复:0

Android API Demos学习(3) - Persistent State

楼主#
更多 发布于:2012-09-06 14:03

关键词: Android



例子展示了关闭程序时怎么持久保存用户偏好。
@Override
    protected void onResume() {
        super.onResume();

        SharedPreferences prefs = getPreferences(0);  
        String restoredText = prefs.getString("text", null);
        if (restoredText != null) {
            mSaved.setText(restoredText, TextView.BufferType.EDITABLE);

            int selectionStart = prefs.getInt("selection-start", -1);
            int selectionEnd = prefs.getInt("selection-end", -1);
            if (selectionStart != -1 ;; selectionEnd != -1) {
                mSaved.setSelection(selectionStart, selectionEnd);
            }
        }
    }


1. 在onResume方法中恢复状态,因为程序要进入运行,必须会执行这个方法。
2. SharedPreferences以key/value的方式保存信息。
3. setSelection设置光标和选择信息。

@Override
    protected void onPause() {
        super.onPause();

        SharedPreferences.Editor editor = getPreferences(0).edit();
        editor.putString("text", mSaved.getText().toString());
        editor.putInt("selection-start", mSaved.getSelectionStart());
        editor.putInt("selection-end", mSaved.getSelectionEnd());
        editor.commit();
    }


1.



在onPause方法中保存状态,因为不管程序怎么关闭,都会执行这个方法。


2. onSaveInstanceState()方法中也可以,不过这个方法一般用来保存UI状态。


3. SharedPreferences.Editor用来保存信息,commit方法提交保存的信息。






切换横竖屏:






喜欢0 评分0
游客

返回顶部