创建对象与设置单个值,以便在android中的活动之间传递值

时间:2013-11-29 09:13:21

标签: android android-intent android-activity

我必须将一些与用户相关的数据传递给活动,数据是

name, user id, user name, email

现在要做到这一点我必须将这些值放在Intent中并传递给其他活动。 现在有两种方式

1) 为用户创建一个DTO,称为UserDto,并将其设置为Serializable并使用intent

传递它
intent.putExtra("user",userDto);

2) 将所有四个不同的值置于意图中

intent.putExtra("name",name);
intent.putExtra("userid",id);
intent.putExtra("username",username);
intent.putExtra("email",email);

以上哪一项是最优化的方式,

请在整个应用范围内推荐一些维护用户的方法。

2 个答案:

答案 0 :(得分:1)

您的项目中可以有一个Application类,如:

public class MyApplication extends Application {

    private User user;

    @Override
    public void onCreate() {
        super.onCreate();
    }

    public void setUser(User user){
        this.user=user;
    }

    public User getUser(){
        return user;
    }
}

或者您可以拥有一些静态类或某个接口来保存应用程序状态(I.E.您的用户对象)

在应用清单中

<application android:name="<-pkgname->.MyApplication" ......>

并且在您的应用程序中的任何活动中,您都可以将其作为

MyApplication myApp=(MyApplication)getApplicationContext();
User user=myApp.getUser();

答案 1 :(得分:0)

您可以将数据存储为静态变量。因此,数据将在整个应用范围内得到维护。

最佳做法是将数据存储在共享首选项中。