《拼图游戏》技术总结“四”SharedPreferences

来源:互联网 发布:淘宝金牌卖家是正品吗 编辑:程序博客网 时间:2024/05/22 19:31

在这个案例中用到了SharedPreferences对游戏进度的保存

这里就将一下SharedPreferences的用法:

这是ActivityMain中的代码:

在onCreate中进行SharedPreferences的读取

在onStop中进行SharedPreferences的储存

ActivityMain:

** * 加载游戏的界面 * 1.onCreate 在这里先判断打开这个Activity是继续游戏,还是创建新的游戏 * isContinue:读取SharedPreferences 中所保存的游戏等级先传给PtGameView * else: 直接传入上个界面所穿进来的 Level值 * 2.在 onStop里储存游戏进度 */public class ActivityMain extends Activity {    private PtGameView mView;    public static boolean isContinue = true;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);
        if (isContinue) {
     //这里是获得SharedPreferences 中的数据
SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE);//获得存储的数据 String mySave = pref.getString("save", "03"); Log.e("========", mySave); String zy = mySave.substring(mySave.length() - 1, mySave.length());//获得存储数据的最后以为(为存储的level值) int continueLevel = (int) Double.parseDouble(zy.trim()); mView = new PtGameView(this, continueLevel); PtGameView.isContinue = true; setContentView(mView);
        } else {            PtGameView.isContinue = false;            Intent intent = getIntent();            mView = new PtGameView(this, intent.getIntExtra("level", 4));            setContentView(mView);        }    }    @Override    public void onBackPressed() {        Intent mIntent = new Intent(this, ActivityDialog.class);        CollectorActivity.addActivity(this);        startActivity(mIntent);    }
    @Override    protected void onStop() {        //储存游戏进度        String _String = "";        for (int i = 0; i < mView.ptCells.length; i++) {            _String = _String + mView.ptCells[i].changeNum + "!";            Log.i("====", _String);        }        _String = _String + mView.runNum + "!";        _String = _String + mView.level;        SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();        editor.putString("save", _String);//最后以为是游戏等级,然后是游戏的步数,再前面存储的拼图块的位置        editor.commit();        super.onStop();    }}

0 0