Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android數據存儲的三種方式介紹(SharedPrefrences,File,SQLite)

Android數據存儲的三種方式介紹(SharedPrefrences,File,SQLite)

編輯:關於android開發

Android數據存儲的三種方式介紹(SharedPrefrences,File,SQLite)


1,使用SharedPrefrences

用於簡單少量的數據,數據的格式簡單:都是普通的字符串,標量類型的值等,比如各種配置信息等等

SharedPrefrences與Editor簡介

創建SharedPreferences實例,通過Context.getSharedPreferences(String name,int mode);方法來獲取SharedPreferences的實例
mode的值:
*Context.MODE_PRIVATE;該SharedPreferences數據只能被本應用程序調讀,寫
* Context.MODE_WORLD_READABLE;該SharedPreferences數據能被其他程序讀,但是不能寫
* Context.MODE_WORLD_WRITEABLE;該SharedPreferences數據能被其他程序讀,寫

SharedPreferences保存的數據主要是類似於配置信息格式的數據,因此他保存的數據主要是簡單類型的key-value對

* SharedPreferences接口主要負責讀取應用程序的Preferences數據,提供如下常用的方法訪問key-value對
* boolean contains(String key);判斷是否包含key的數據
* abstract Map getAll();獲取全部鍵值對
* boolean getXxx(String key,xxx,defValue);獲取指定的key對應的value值,如果key不存在,返回默認defvalue,xxx可以是Boolean,float,int,long,String等各種基本類型的值

SharedPreferences接口本身並沒有提供寫入數據的能力,而是通過 SharedPreferences的內部接口Editor寫入數據,SharedPreferences調用edit()方法即可獲得它所對應的Editor對象
Editor提供了如下方法:
* SharedPreferences.Editor clear();清空所有數據
* SharedPreferences.Editor putXxx(String key,xxx value);存入指定key對應的數據,xxx可以是Boolean,float,int,long,String等各種基本類型的值
* SharedPreferences.Editor remove(String key);刪除指定key的數據
* Boolean commit();當Editor編輯完成之後,調用該方法提交修改

例子:一個按鈕寫數據,一個按鈕讀數據

activity_main.xml

 



\
MainActivity.java

 

 

package com.hust.sharedpreferences;

import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/*
 * 創建SharedPreferences實例,通過Context.getSharedPreferences(String name,int mode);方法來獲取SharedPreferences的實例
 * mode的值:
 * Context.MODE_PRIVATE;該SharedPreferences數據只能被本應用程序調讀,寫
 * Context.MODE_WORLD_READABLE;該SharedPreferences數據能被其他程序讀,但是不能寫
 * Context.MODE_WORLD_WRITEABLE;該SharedPreferences數據能被其他程序讀,寫
 * 
 * 
 * SharedPreferences保存的數據主要是類似於配置信息格式的數據,因此他保存的數據主要是簡單類型的key-value對
 * 
 * SharedPreferences接口主要負責讀取應用程序的Preferences數據,提供如下常用的方法訪問key-value對
 *    boolean contains(String key);判斷是否包含key的數據
 *    abstract Map getAll();獲取全部鍵值對
 *    boolean getXxx(String key,xxx,defValue);獲取指定的key對應的value值,如果key不存在,返回默認defvalue,xxx可以是Boolean,float,int,long,String等各種基本類型的值
 *    
 * SharedPreferences接口本身並沒有提供寫入數據的能力,而是通過   SharedPreferences的內部接口Editor寫入數據,SharedPreferences調用edit()方法即可互毆它所對應的Editor對象
 * Editor提供了如下方法:
 *   SharedPreferences.Editor clear();清空所有數據
 *   SharedPreferences.Editor putXxx(String key,xxx value);存入指定key對應的數據,xxx可以是Boolean,float,int,long,String等各種基本類型的值
 *   SharedPreferences.Editor remove(String key);刪除指定key的數據
 *   Boolean commit();當Editor編輯完成之後,調用該方法提交修改
 *   
 * */

public class MainActivity extends Activity {
	//
	SharedPreferences preferences;
	SharedPreferences.Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //實例化SharedPreferences對象,讀數據
        preferences=getSharedPreferences("test",Context.MODE_WORLD_READABLE);
        //實例化Editor對象,寫數據
        editor=preferences.edit();
        
        Button read=(Button) findViewById(R.id.button2);
        Button write=(Button) findViewById(R.id.button1);
        read.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String time=preferences.getString("time", null);				
				int rnd=preferences.getInt("rnd", 0);
				String result=time==null?"您暫時還未寫入數據":"寫入時間:"+time+"\n上次生成的數據數是:"+rnd;
				Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();
			}
        	
        });
        write.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日"+"hh:mm:ss");
				editor.putString("time", sdf.format(new Date()));
				editor.putInt("rnd", (int)(Math.random()*1000));
				editor.commit();

			}
        	
        });
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
SharedPrefrences文件的存儲位置:

 

\
test.xml

 

\

待續。。。

 

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