2013年5月23日

【Android】SharedPreferences設定檔的儲存與讀取

嘻嘻!各位Android安卓開發者好啊 ^^

小黑人這次要分享的是"SharedPreferences"也就是"資料設定檔",原因就是如果各位開發者想要儲存一些資訊,但要需儲存的內容又不多也不至於要用到Database資料庫的話,那SharedPreferences設定檔就是一件很方便的事囉,只要將資訊value丟一丟就可以儲存起來,下次再開啟APP時設定檔的值依然會存在,像記住帳號密碼等需要儲存資訊的功能,交給SharedPreferences設定檔就對了,那我們就趕緊看看要如何創造設定檔吧!

首先,先跟大家說明一下,SharedPreferences設定檔的撰寫不需要動到AndroidManifest.xml的權限和Layout的版面,所以這兩部份小黑人就不跟大家說明囉,那我們就直接進入程式(.java)來進行設定檔的撰寫
 public class MainActivity extends Activity
{      
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
               
       //寫入資料至設定檔按鈕
       Button mSet = (Button) findViewById(R.id.set);

       //讀取設定檔資料按鈕
       Button mGet = (Button) findViewById(R.id.get);
               
       mSet.setOnClickListener(new OnClickListener()
       {
            @Override
            public void onClick(View v)
            {      
                 //寫入資料至設定檔,需帶入Context設定檔名稱欄位Key
                 容
String SET = "設定檔儲存資料: 小黑人的Android教室!" ;
                 setConfig(MainActivity.this,"Config","SaveText",SET);
                               
                 //儲存後Toast訊息提示
                 Toast.makeText(MainActivity.this,
                                SET ,
                                Toast.LENGTH_SHORT).show();
                 }
            });
               
            mGet.setOnClickListener(new OnClickListener()
            {
                 @Override
                 public void onClick(View v)
                 {
                      //讀取設定檔資訊,需帶入Context設定檔名稱欄位Key預設值,預設
                      值為若沒有此設定檔則回傳此預設文字
                      String GET = getConfig(MainActivity.this,
                                             "Config",
                                             "SaveText",
                                             "設定檔未儲存任何資料");
                               
                      //設定檔讀取後Toast訊息提示
                      Toast.makeText(MainActivity.this,
                                     GET ,
                                     Toast.LENGTH_SHORT).show();
                 }
            });
       }
       
       //設定檔儲存
       public static void setConfig(Context context,String name,String key,
       String value)
       {
            SharedPreferences settings =context.getSharedPreferences(name,0);
            SharedPreferences.Editor PE = settings.edit();
            PE.putString(key, value);
            PE.commit();
       }
       
       //設定檔讀取
       public static String getConfig(Context context , String name , String
       key , String def)
       {
            SharedPreferences settings =context.getSharedPreferences(name,0);
            return settings.getString(key, def);
       }
}
以上就是SharedPreferences設定檔儲存與讀取的程式碼,設定檔可以運用在很多地方,當然也很方便,各位可以試試看唷 ^^
如有任何問題都可以和小黑人一起交流討論喔~!謝謝大家 XDD

2 則留言:

  1. 請問 SharedPreferences 有辦法儲存TextView的值嗎?

    回覆刪除
    回覆
    1. textView.getText().toString就可以取值儲存了

      刪除

謝謝大家支持,有任何問題都可以和小黑人一起討論!