Re: [问题] 不同页面传递资料

楼主: givemepass (λ)   2014-10-04 08:46:15
※ 引述《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切换而改变
楼主: givemepass (λ)   2014-10-04 15:08:00
我好像写错了 晚上再改
作者: JULONE780701 (亚)   2014-10-04 16:44:00
有错吗?我还认真一行一行看完欸= =
作者: pkmilk   2014-10-04 20:20:00

Links booklink

Contact Us: admin [ a t ] ucptt.com