Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android數據的四種存儲方式之SharedPreferences

Android數據的四種存儲方式之SharedPreferences

編輯:關於Android編程

  除了SQLite數據庫外,SharedPreferences也是一種輕型的數據存儲方式,它的本質是基於XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/< >/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。實現SharedPreferences存儲的步驟如下:

  一、根據Context獲取SharedPreferences對象

  二、利用edit()方法獲取Editor對象。

  三、通過Editor對象存儲key-value鍵值對數據。

  四、通過commit()方法提交數據。

下面是用SharedPreferences存儲數據的一個案例:

\

點擊開啟開啟WiFi,設置進度條,保存狀態,下次打開此程序,將顯示上次保存的狀態。

核心code如下:

package com.ghsy.demo;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity {

	private CheckBox checkBox;
	private SeekBar seekBar;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		checkBox=(CheckBox) this.findViewById(R.id.checkBox1);
		seekBar=(SeekBar) this.findViewById(R.id.seekBar1);
		/*除了SQLite數據庫外,SharedPreferences也是一種輕型的數據存儲方式,它的本質是基於XML文件
		 *存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/< >/sh
		 *ared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是
		 *通過Editor對象實現。
		 */
		//sharedPreferences存儲數據的步驟:
		//1.根據context獲取SharedPreferences對象
		final SharedPreferences preferences=MainActivity.this.getSharedPreferences("setting",MODE_PRIVATE );
		//點擊發生狀態改變的時候,調用相應的方法
		checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){

			@Override
			public void onCheckedChanged(CompoundButton buttonView,
					boolean isChecked) {
				//2.通過SharedPreferences獲取editor對象(對數據存儲修改的對象)
				Editor editor=preferences.edit();
				//3.通過editor對象存儲key-value鍵值對數據
				editor.putBoolean("wifi", isChecked);
				//4.通過commit方法提交數據
				editor.commit();
				
			}
		});
		//當點開當前頁面的時候,從preferences中獲取當前的的wifi開啟狀態
		Boolean boolean1 = preferences.getBoolean("wifi", false);
		checkBox.setChecked(boolean1);
		//當seekbar在移動的時候對其做一個監聽
		this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// 進度條停止的時候
				
			}
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// 進度條開始移動
				
			}
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				// 進度條運動後(在移動)
				Editor editor=preferences.edit();
				editor.putInt("seek", progress);
				editor.commit();
				
			}
		});
		int progress=preferences.getInt("seek", 0);
		this.seekBar.setProgress(progress);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved