Saving Key-value Sets 保存鍵值對html
SharedPreferences只能用來保存一些簡單的數據,而且這些數據能夠是共享的,也能夠是私有的。
java
SharedPreferences沒有構造方法,只能同個Context中的getSharePreference得到。
android
您能夠經過調用如下兩種方法之一建立新的共享首選項文件或訪問現有的文件:app
getSharedPreferences()
— 若是您須要按照您用第一個參數指定的名稱識別的多個共享首選項文件,請使用此方法。 您能夠從您的應用中的任何 Context
調用此方法。getPreferences()
— 若是您只需使用 Activity 的一個共享首選項,請從 Activity
中使用此方法。 由於此方法會檢索屬於該 Activity 的默認共享首選項文件,您無需提供名稱。例如,如下代碼在 Fragment
內執行。它訪問經過資源字符串 R.string.preference_file_key
識別的共享首選項文件而且使用專用模式打開它,從而僅容許您的應用訪問文件。ide
例如,如下代碼在 Fragment
內執行。它訪問經過資源字符串 R.string.preference_file_key
識別的共享首選項文件而且使用專用模式打開它,從而僅容許您的應用訪問文件。spa
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
命名您的共享首選項文件時,您應使用對於您的應用而言惟一可識別的名稱,好比 "com.example.myapp.PREFERENCE_FILE_KEY"
code
或者,若是您只需 Activity 的一個共享首選項文件,您能夠使用 getPreferences()
方法:htm
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
要寫入共享首選項文件,請經過對您的 SharedPreferences
調用 edit()
來建立一個 SharedPreferences.Editor
。blog
傳遞您想要使用諸如 putInt()
和 putString()
方法寫入的鍵和值。而後,調用 commit()
以保存所作的更改。例如:資源
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
要從共享首選項文件中檢索值,請調用諸如 getInt()
和 getString()
等方法,爲您想要的值提供鍵,並根據須要提供要在鍵不存在的狀況下返回的默認值。例如:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
代碼:
public class MainActivity extends Activity { TextView view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_layout); view=(TextView) findViewById(R.id.textView1); Button write=(Button) findViewById(R.id.button1); write.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub SharedPreferences sp=getPreferences(MODE_PRIVATE); Editor editor=sp.edit(); editor.putInt(getString(R.string.flag), 1); editor.commit(); } }); Button read=(Button) findViewById(R.id.button2); read.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub SharedPreferences sp=getPreferences(MODE_PRIVATE); int defalt=-1; int res=sp.getInt(getString(R.string.flag), defalt); view.setText(String.valueOf(res)); } }); } }