Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 使用SharedPreferences進行數據存儲和讀取數據

Android 使用SharedPreferences進行數據存儲和讀取數據

編輯:關於Android編程

很多時候我們開發的軟件需要向用戶提供軟件參數設置功能,例如我們常用的QQ,用戶可以設置是否允許陌生人添加自己為好友。對於軟件配置參數的保存,如果是window軟件通常我們會采用ini文件進行保存,如果是j2se應用,我們會采用properties屬性文件或者xml進行保存。如果是Android應用,我們最適合采用什麼方式保存軟件配置參數呢?Android平台給我們提供了一個SharedPreferences類,它是一個輕量級的存儲類,特別適合用於保存軟件配置參數。使用SharedPreferences保存數據,其背後是用xml文件存放數據,文件存放在/data/data//shared_prefs目錄下。

下面用默認路徑的設置,舉例說明其用法,首先是布局文件:



   
	
    
	


下面是PreferencesService類:

package lhjd.cnc.dispenser.setting;

import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
public class PreferencesService
{
	private Context context;
	public PreferencesService(Context context)
	{
		this.context = context;
	}
	/**
	 * 實現應用參數保存
	 * @param name
	 * @param age
	 * @throws Exception
	 */
	public void save(String name) throws Exception
	{
		SharedPreferences preferences=context.getSharedPreferences("pathSet", Context.MODE_WORLD_READABLE);
		Editor editor=preferences.edit();
		editor.putString("name", name);
		editor.commit();
	}
	
	/**
	 * 實現應用參數提取
	 * @return
	 * @throws Exception
	 */
	public Map getPreferences() throws Exception
	{
		SharedPreferences preferences=context.getSharedPreferences("pathSet", Context.MODE_WORLD_READABLE);
		Map result=new HashMap();
		result.put("name", preferences.getString("name", ""));
		return result;
	}
}

下面是activity

public class PathSet extends Activity{
	
	private EditText pathNameText;
	private PreferencesService service;
	public PathSet(final Context context) {
		super(context);
		LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		inflater.inflate(R.layout.pathset, this);
		service=new PreferencesService(context);
		pathNameText=(EditText)this.findViewById(R.id.pathName);
	    Map params = null;
		try {
			params = service.getPreferences();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		pathNameText.setText(params.get("name"));
        Button button=(Button)findViewById(R.id.btn_savePath);
        button.setOnClickListener(new View.OnClickListener()
		{
			public void onClick(View v)
			{
				String name=pathNameText.getText().toString().trim();
				if("".equals(name)||name==null){
					Toast.makeText(context, "路徑不能為空", 1).show();
				}else{
					try
					{
						service.save(name);
						Toast.makeText(context, R.string.succss, 1).show();
					} catch (Exception e)
					{
						Toast.makeText(context, R.string.fail, 1).show();
						e.printStackTrace();
					}
				}
			
			}
		});
    }
}


下面是截圖效果:



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