======================================================================================
public class Param
{
public void setSharedPreferences(String columns, String data, Context ctxs)
{
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(ctxs);
SharedPreferences.Editor editor = settings.edit();
editor.putString(columns, data);
editor.commit();
}
public String getSharedPreferences(String columns, Context ctxs)
{
String param="no";
try{
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(ctxs);
param=sp.getString(columns, param);
}catch(Exception ex){}
return param;
}
}
==============================extends Fragment==============================
Activity mActivity;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mActivity = (Activity) activity;
}
@Override
public void onCreate(Bundle savedInstanceState) {
Param pm = new Param();
pm.setSharedPreferences("startDay", "20150402", mActivity);
String startDay = pm.getSharedPreferences("startDay", mActivity);
}
==============================extends Activity==============================
@Override
public void onCreate(Bundle savedInstanceState) {
Param pm = new Param();
pm.setSharedPreferences("startDay", "20150402", this);
String startDay = pm.getSharedPreferences("startDay", this);
}
總網頁瀏覽量
基礎Note
☪About Me
(1)
免費軟體
(2)
教學
(4)
教學文件
(42)
會計軟體
(1)
電腦系統
(1)
Adapter
(8)
Adobe Premiere
(1)
AlertDialog
(7)
Android App 介紹
(1)
Animation
(1)
API
(2)
APP範例
(1)
Array
(1)
AsyncTask
(1)
Auto Test Case
(32)
AutoCompleteTextView
(1)
Bitmap Drawable
(3)
BroadcastReceiver
(4)
Button
(1)
Codility
(2)
Contact
(4)
DB
(1)
Dialog
(2)
Documents
(1)
Eclipse
(3)
Ellipsize
(1)
File
(4)
Focus
(2)
Fragment
(4)
Gallery
(2)
GIT
(4)
GitHub
(1)
GridView
(8)
HashMap
(1)
HorizontalScrollView
(6)
IIS
(1)
Intent
(3)
IntentService
(1)
Internet
(2)
KeyEvent
(1)
Layout
(1)
ListView
(11)
Log
(1)
Mac / iOS
(11)
Manifest
(1)
Marquee
(2)
Math
(1)
MediaPlayer
(5)
MediaRecorder
(5)
MSMQ
(1)
onClick
(1)
PackageManager
(6)
PHP
(1)
PIS
(3)
PowerManager
(1)
Progress
(2)
SCREEN
(1)
Search
(6)
Service
(1)
SharedPreferences
(3)
SimpleDateFormat
(1)
SonarQube
(1)
Sound Recorder
(1)
Spinner
(2)
SQL server Management
(16)
SQLite
(13)
String
(1)
STS
(5)
SVN
(1)
Thread
(1)
Toast
(3)
Typeface
(1)
Uri
(2)
VB.NET
(17)
VMware
(1)
關於我自己
2015年3月9日 星期一
2014年6月1日 星期日
[Android] 建立共用的SharedPreferences, Fragment也可以用
當有一些資料希望在離開AP, 下次再進來時依然能讀到這些資料, 又不想大費周章的寫database紀錄, 就可以使用SharedPreferences
在此是另外建立一個獨立的SharedPreferences, 讓其它class可以讀取
在此是另外建立一個獨立的SharedPreferences, 讓其它class可以讀取
import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; public class SystemPreference { protected static SharedPreferences settings; protected static SharedPreferences.Editor editor; protected static SharedPreferences settingsForStatus; protected static SharedPreferences.Editor editorForStatus; static int lastPosition; public static void registerForStatusOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener){ if(settingsForStatus !=null){ settingsForStatus.registerOnSharedPreferenceChangeListener(listener); } } public static void unregisterForStatusOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener){ if(settingsForStatus !=null){ settingsForStatus.unregisterOnSharedPreferenceChangeListener(listener); } } public static void registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener){ if(settings !=null){ settings.registerOnSharedPreferenceChangeListener(listener); } } public static void unregisterOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener){ if(settings !=null){ settings.unregisterOnSharedPreferenceChangeListener(listener); } } public static int getLastPosition(){ //取出name屬性的字串 lastPosition = settingsForStatus.getInt("LastPosition", 0); if(lastPosition == 0){ return 0; }else{ return lastPosition; } } public static void setLastPosition(int lastPosition){ //置入name屬性的字串 settingsForStatus.edit().putInt("LastPosition", lastPosition).commit(); } /** * Load the plugin preferences */ public static boolean load(Context a) { try { if (settingsForStatus == null) { settingsForStatus = a.getSharedPreferences("Preference", 0); editorForStatus = settingsForStatus.edit(); } return true; } catch (Exception e) { } return false; } }在其它class onCreate時註冊
@Override public void onCreate(Bundle savedInstanceState) { SystemPreference.registerForStatusOnSharedPreferenceChangeListener(this); SystemPreference.load(context); }在離開時記得反註冊以免佔用資源
@Override protected void onStop() { super.onStop(); SystemPreference.unregisterForStatusOnSharedPreferenceChangeListener(this); }之後在需要使用的地方直接呼叫就行
SystemPreference.setLastPosition(傳入整數); SystemPreference.getLastPosition();
2014年5月24日 星期六
[Android] SharedPreferences的使用
當有一些資料希望在離開AP, 下次再進來時依然能讀到這些資料, 又不想大費周章的寫database紀錄, 就可以用這個簡易的方法 - SharedPreferences
調用setLastPosition(lastPosition)將值寫入SharedPreference
調用getLastPosition()取得上次寫入SharedPreference的值
int lastPosition = 0; public int getLastPosition(){ //取得SharedPreference設定("Preference"為設定檔的名稱) SharedPreferences settings = getSharedPreferences("Preference", 0); //取出name屬性的字串 lastPosition = settings.getInt("LastPosition", 0); return lastPosition; } public void setLastPosition(int lastPosition){ //取得SharedPreference設定("Preference"為設定檔的名稱) SharedPreferences settings = getSharedPreferences("Preference", 0); //置入name屬性的字串 settings.edit().putInt("LastPosition", lastPosition).commit(); }
訂閱:
文章 (Atom)