如何在注册期间将从不同活动中收集的用户详细信息发送到最终活动?

时间:2016-08-14 14:55:47

标签: android android-intent android-activity android-volley

我正忙着为我的应用添加注册功能,我有4个活动用于收集用户的信息。这些活动应该收集用户输入的详细信息,并将它们全部发送到最终活动,然后将它们发送到数据库。

第一项活动要求用户选择是否要使用其电子邮件或电话号码进行注册。

第二项活动要求用户选择用户名和密码。

第三项活动要求用户添加更多个人详细信息,并将个人资料图片添加到他们的帐户中。

最终活动要求用户输入他们的地理详细信息,然后将从其他活动发送的所有信息发送到数据库。

我面临的问题是,如果我使用Intents,我需要将数据从活动发送到活动。这给了我很多错误,我怎样才能将每个活动中收集的信息发送到最后一个,然后一次性发送。

3 个答案:

答案 0 :(得分:1)

请使用我的代码,我一定会帮助您

我正在进行三项活动的演示课程

这是你的FirstActivity

int

这是你的第二个活动

# int 3.1;;
Error: Unbound value int
# (int) 3.0;;
Error: Unbound value int

这是你的FinalActivity,请仔细阅读代码评论

public class FirstActivity extends Activity
{
    public void onCreate(Bundle bundle)
    {
        super.onCreate(bundle);
        setContentView(R.layout.main);      
    }
    public void onResume()
    {
        super.onResume();

        //put this code as per your requirement
        // i am just giving idea

        Intent i=new Intent(this,SecondActivity.class);
        i.putExtra("name","Riyaz Parasara");
        i.putExtra("email","riyazparasara@gmail.com");
        i.putExtra("phone","+918955094537");
        i.putExtra("country","india");
        startActivity(i);
    }
}

答案 1 :(得分:1)

您可以使用Singleton设计模式,在所有活动之间保留单个对象。

例如:

public class SignUpSingleton {
private int emailOrPhone;

private String username;
private String password;

private String firstName;
private String lastName;

private String country;
private String city;
//remaining fields here

private static SignUpSingleton instance = new SignUpSingleton();

private SignUpSingleton(){}

public static SignUpSingleton getInstance(){
    return instance;
}


public int getEmailOrPhone() {
    return emailOrPhone;
}

public void setEmailOrPhone(int emailOrPhone) {
    this.emailOrPhone = emailOrPhone;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public String getCountry() {
    return country;
}

public void setCountry(String country) {
    this.country = country;
}

public String getCity() {
    return city;
}

public void setCity(String city) {
    this.city = city;
}

}

在第一项活动中:

        SignUpSingleton.getInstance().setEmailOrPhone(1); //1 or 2

在第二项活动中:

        SignUpSingleton.getInstance().setUsername("Tom");
        SignUpSingleton.getInstance().setPassword("pass");

依旧等等。

在上一个活动中,您可以立即将所有数据发送到数据库,例如:

storeInDb(
            SignUpSingleton.getInstance().getEmailOrPhone(),
            SignUpSingleton.getInstance().getUsername(),
            SignUpSingleton.getInstance().getPassword(),
            SignUpSingleton.getInstance().getFirstName(),
            SignUpSingleton.getInstance().getLastName(),
            //remaining params here

    );

假设您有一个名为storeInDb或类似的方法,并在其中包含数据库代码。

答案 2 :(得分:0)

例如,使用POJO类用户,它将具有您可能需要完成注册过程的所有属性(名称,电子邮件,位置等)。

在每个活动中传递和更新此User类对象。 User类需要实现Serializable或Percelable,以便通过Intent可以通过。

public class User implements Serilizable {

private String usename;
private String email;
private Location location;
// Other attributes

// Getters and Setters


}