2012年7月19日 星期四

Android:SharedPreference儲存資料

一般來說,在設計上也常將寫入檔案的動作寫在onPause( )中
而取值動作則寫在onCreate( )中,在UI介面程式設定完之後


package ....;

import ....
public class SharePreActivity extends Activity {
/** Called when the activity is first created. */
SharedPreferences sp;
EditText show;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// MODE_PRIVATE=0,可以直接以0表示
//getSharedPreferences()會回傳一個SharedPreferences物件
sp = getSharedPreferences("DATA", MODE_PRIVATE);
show = (EditText) findViewById(R.id.editText1);
}

public void saveonclick(View v) {
int data = Integer.parseInt(show.getText().toString());
//SharedPreferences.edit()取得Editor物件,
//使用Editor的putXXX()寫入,而此方法都會再回傳Editor物件,因此用串鏈寫法
//結束要加上commit()方法
sp.edit().putInt("datakey", data).commit();
Toast.makeText(this, String.format("%d is saved...", data),
Toast.LENGTH_LONG).show();

}

public void page2onclick(View v) {
startActivity(new Intent(this, Page2.class));

}
}

package com.wu;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class Page2 extends Activity {
SharedPreferences sp;
TextView show;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.page2);
//如果是在不同的活動頁面,必須在宣告並取得SharedPreferences物件
//0=MODE_PRIVATE
sp = getSharedPreferences("DATA", 0);
show=(TextView)findViewById(R.id.textViewpage2);
}
public void readonclick(View v){
//sp.getInt("datakey", 0):使用getXXX(Key,default values)取回儲存之值
show.setText(String.format("取回之值為%d",sp.getInt("datakey", 0) ));
}
}


沒有留言:

張貼留言