Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android:數據存貯方式-SharedPreference

android:數據存貯方式-SharedPreference

編輯:關於android開發

android:數據存貯方式-SharedPreference


SharedPreference:

1.是一種輕型的數據存貯方式

2.本質是基於xml文件存貯key_value鍵值對數據

3.通常用來存貯一些簡單的配置信息(密碼,窗口狀態,軟件的基本配置,壁紙等等)

SharedPreferences對象只能獲取數據而不支持存貯和修改,存貯和修改是通過Editor對象實現

使用SharedPreferences保存數據的步驟:

1.獲得SharedPreferences對象

有兩種方式

(1)通過函數context.getsharedpreferences(string name,int mode) 獲得的SharedPreferences對象可以被同一應用程序下的其他組件共享。name為指定文件的名稱,mode為操作模式 ,共有四種(Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容。Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取。MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。)

 

SharedPreferences pre = getSharedPreferences("myinfo", MODE_PRIVATE);

 

(2)通過函數activity.getpreferences(int mode),其中配置文件僅可以被調用的activity使用。mode為操作模式

 

2.獲得SharedPreferences.Editor對象

 

		SharedPreferences pre = getSharedPreferences("myinfo", MODE_PRIVATE);
		Editor edit=pre.edit();


 

3.通過Editor接口的putXxx()方法保存key-value,其中的Xxx表示不同的數據類型

 

		edit.putString("name", "zhangsan");
		edit.putString("age", "30");

存貯完之後別忘記通過Editor的commit()方法提交

 

 

edit.commit();

4.獲取數據

 

 

		SharedPreferences pre = getSharedPreferences("myinfo", MODE_PRIVATE);
		pre.getString("name", "");
		pre.getString("age", "");
5.移除數據

 

 

			edit.remove("name");
			edit.remove("age");
			edit.commit();
我學習的大概就這麼多了 。下面附上一個實例。保存用戶名和密碼

 

運行結果

\

MainActivity.class

 

package com.example.sharedpreferences;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
	private EditText et_name;
	private EditText et_passward;
	private CheckBox ckb_save;
	private SharedPreferences pre;
	private Editor edit;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_name = (EditText) findViewById(R.id.et_name);
		et_passward = (EditText) findViewById(R.id.et_passward);
		ckb_save = (CheckBox) findViewById(R.id.checkBox1);
		pre = getSharedPreferences("myinfo", MODE_PRIVATE);
		edit = pre.edit();
		String name=pre.getString("name", "");
		String passward=pre.getString("passward", "");
		if(name!=null&&passward!=null){
			et_name.setText(name);
			et_passward.setText(passward);
		}
	}

	public void btnLogin(View v) {
		switch (v.getId()) {
		case R.id.btn_login: {
			String name = et_name.getText().toString();
			String passward = et_passward.getText().toString();
			if (name!=null&&passward!=null) {
				if (ckb_save.isChecked()) {
					edit.putString("name", name);
					edit.putString("passward", passward);
					edit.commit();
					Toast.makeText(MainActivity.this, "保存用戶成功",
							Toast.LENGTH_SHORT).show();
				}
				else{
					Toast.makeText(MainActivity.this, "未勾選保存,保存失敗",
							Toast.LENGTH_SHORT).show();	
				}
			}
			else{
				Toast.makeText(MainActivity.this, "用戶名或者密碼為空,請重新輸入", Toast.LENGTH_SHORT).show();
				et_name.setText(null);
				et_passward.setText(null);
			}
			break;
		}
		case R.id.btn_cancel: {
			edit.remove("name");
			edit.remove("passward");
			edit.commit();
			Toast.makeText(MainActivity.this, "已成功忘記", Toast.LENGTH_SHORT).show();
			break;
		}
		}
	}
}

布局文件

 

 



    

    
    

    

    

    



 

 

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