Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之使用SharedPreferences實現QQ登陸的選項框記憶功能(源代碼分享)

Android開發之使用SharedPreferences實現QQ登陸的選項框記憶功能(源代碼分享)

編輯:關於Android編程

本系列文章由@林泓成出品,轉載請注明出處。

根據上篇博客講的SharedPreferences的簡單實現,我們來實現下QQ登陸的時候用戶名自動顯示以及勾選是否記憶用戶名和隱身登陸的功能,通過實例來展現SharedPreferences的實用性。

相關代碼如下:

package com.example.f15_sharedpreferences01;

import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;

public class MainActivity extends Activity {
	private Button button;
    private CheckBox checkBox,checkBox2;
    private EditText editText;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) this.findViewById(R.id.button1);
		checkBox=(CheckBox)this.findViewById(R.id.checkBox1);
		checkBox2=(CheckBox)this.findViewById(R.id.checkBox2);
		editText=(EditText)this.findViewById(R.id.editText1);
		Map map=getMsg("login");
		if(map!=null&&!map.isEmpty()){
			if(map.get("username").toString()!=null&&!map.get("username").toString().equals("")){
				editText.setText(map.get("username").toString());
			}
			checkBox.setChecked( (Boolean) map.get("isname"));
			checkBox2.setChecked( (Boolean) map.get("ispwd"));
			
		}
		button.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				HashMap map=new HashMap();
			    if(editText.getText().toString().trim().equals("admin")){
			    	if(checkBox.isChecked()){
			    		map.put("username",editText.getText().toString().trim() );
			    	}else{
			    		map.put("username","" );
			    	}
			    	map.put("isname", checkBox.isChecked());
			    	map.put("ispwd", checkBox2.isChecked());
			    	saveMsg("login", map);
			    }
			}
		});
	}
   //寫入數據
	public boolean saveMsg(String fileName, Map map) {
		boolean flag = false;
		// 一般Mode都使用private,比較安全
		SharedPreferences preferences = getSharedPreferences(fileName,
				Context.MODE_PRIVATE);
		SharedPreferences.Editor editor = preferences.edit();
		// Map類提供了一個稱為entrySet()的方法,這個方法返回一個Map.Entry實例化後的對象集。
		// 接著,Map.Entry類提供了一個getKey()方法和一個getValue()方法,
		// 因此,上面的代碼可以被組織得更符合邏輯
		for (Map.Entry entry : map.entrySet()) {
			String key = entry.getKey();
			Object object = entry.getValue();
			// 根據值得不同類型,添加
			if (object instanceof Boolean) {
				Boolean new_name = (Boolean) object;
				editor.putBoolean(key, new_name);
			} else if (object instanceof Integer) {
				Integer integer = (Integer) object;
				editor.putInt(key, integer);
			} else if (object instanceof Float) {
				Float f = (Float) object;
				editor.putFloat(key, f);
			} else if (object instanceof Long) {
				Long l = (Long) object;
				editor.putLong(key, l);
			} else if (object instanceof String) {
				String s = (String) object;
				editor.putString(key, s);
			}
		}
		flag = editor.commit();
		return flag;

	}
   //讀取數據
	public Map getMsg(String fileName) {
		Map map = null;
		//讀取數據用不到edit
		SharedPreferences preferences = getSharedPreferences(fileName,
				Context.MODE_PRIVATE);
		map = preferences.getAll();

		return map;

	}

}


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