android小功能實現之簡單資料持久化儲存(SharedPreferences)
為了儲存一些簡單的配置,類似iOS的NSUserDefault和cocos2dx的CCUserDefault,Android提供了SharedPreferences。
一 布局
先看:
開啟main.xml修改內容如下:
二 定義字串
開啟strings.xml新增內容如下:
姓名 年齡 儲存參數 儲存成功 儲存失敗
三 功能實現
修改MainActivity.java代碼如下:
private EditText nameText; private EditText ageText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); nameText = (EditText)this.findViewById(R.id.input_name); ageText = (EditText)this.findViewById(R.id.input_age); // 讀取儲存的值 //SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE);// 預設使用類名作為檔案名稱 //SharedPreferences preferences = this.getSharedPreferences(preference, Context.MODE_PRIVATE); SharedPreferences preferences = getApplicationContext().getSharedPreferences(preference, Context.MODE_PRIVATE); String name = preferences.getString(name, 空); String age = String.valueOf(preferences.getInt(age, 0)); nameText.setText(name); ageText.setText(age); } public void save(View v){ String name = nameText.getText().toString(); Integer age = Integer.valueOf( ageText.getText().toString() ); try{ // 第一個參數為檔案名稱,不能指定尾碼名,第二個參數為檔案操作模式 SharedPreferences preferences = getApplicationContext().getSharedPreferences(preference, Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString(name, name); editor.putInt(age, age); editor.commit(); Toast.makeText(getApplicationContext(),R.string.success, Toast.LENGTH_LONG).show(); } catch (Exception e){ Toast.makeText(getApplicationContext(),R.string.fail, Toast.LENGTH_LONG).show(); e.printStackTrace(); } }
四 運行結果
第一次運行結果
輸入內容,點擊儲存參數按鈕,退出程式,再次開啟,