情境
常用的存成cache 物件
希望下次登錄還可以看見資料
存成sharepreference、file、sqlite或者存在server端
程式碼說明
首先建立一個class
public class UserData{
private String userName;
private String userId;
private int userAge;
//還有其他屬性 自己定義
public void setUserName(String name){
userName = name;
}
public String getUserName(){
return userName;
}
//其他的getter setter
}
宣告好類別以後 以sigleton pattern實做
這個模式的好處是只會new出一個物件
public class MyCacheDate{
public static MyCacheDate mMyCacheDate;
private ArrayList<UserData> mUserDataList;
public static MyCacheDate getInstance(){
if(mMyCacheDate == null){
mMyCacheDate = new MyCacheDate();
mMyCacheDate.init();
}
return mMyCacheDate;
}
private MyCacheDate(){}
private void init(){
mUserDataList = new ArrayList<UserData>();
}
public void addUserData(UserData data){
mUserDataList.add(data);
}
public UserData getUserDataByIndex(int index){
return UserData.get(index);
}
public ArrayList<UserData> getUserList(){
return mUserDataList;
}
//其他方法自己實做
}
那麼 就可以開始使用它惹
public class A extends Activity{
public void OnCreate(Bundle b){
//...
UserData data = new UserData();
data.setUserName("Brown");
data.setAge(11);
data.setId(0);
MyCacheDate.getInstance().addUserData(data);
}
}
每一個activity進行切換時 都可以取得那個物件來設定
最後到D的時候就可以取出這個物件
public class D extends Activity{
public void OnCreate(Bundle b){
//...
MyCacheData dataCache = MyCacheData.getInstance();
ArrayList<UserData> userDatas = dataCache.getUserDataList();
for(UserData u : userDatas){
String name = data.getUserName();
...
//這邊你也可以把所有資料存在SharedPreference DB 或File
//下次進入app仍然可以取得上次更新的資料
}
}
}
所有資料都可以即時取出 而不會因為你UI切換而改變