作者givemepass (〆)
看板AndroidDev
標題Re: [問題] 不同頁面傳遞資料
時間Sat Oct 4 08:46:15 2014
※ 引述《MonruTsai (Frank)》之銘言:
: 大家好,我想請問個問題,
: 單純兩頁之間頁面切換及傳資料我有把它寫出來,就是利用bundle跟intent,
: 那如果是第一頁的資料,要傳到第五頁在畫面顯示,但按button要跳到第二頁,
: 這樣該怎麼做,因為bundle好像是附加在intent中的,
: 我想做的是把前四頁使用者所選的資料傳至第五頁畫面顯示,但button是照頁數跑的,
: 新手學習中,已爬文,若有人問過會自刪,謝謝。
常用的存成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切換而改變
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.167.23
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1412383579.A.74F.html
→ givemepass: 我好像寫錯了 晚上再改 10/04 15:08
推 JULONE780701: 有錯嗎?我還認真一行一行看完欸= = 10/04 16:44
哈哈 抱歉 改好了
※ 編輯: givemepass (123.192.167.23), 10/04/2014 18:31:07
推 pkmilk: 推 10/04 20:20
推 MonruTsai: 現在才看到 謝謝 12/26 10:34