Android Saving Data(一)

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.Editorblog

傳遞您想要使用諸如 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));
            }
        });
        
        
    }
}
View Code
相關文章
相關標籤/搜索