将表单数据传递给被调用的活动

时间:2017-06-04 06:16:28

标签: java android android-intent android-activity

如何从 signupActivity 获取所有用户输入字段,该字段当前将电子邮件,密码和其他字段作为用户输入并在 finalactivity中使用

我已经制作了xml布局,并想知道如何将所有这些字段显示为按下注册按钮时调用的较新活动。

我的SignupActivity.java: -

public class SignupActivity extends AppCompatActivity {    
    @Bind(R.id.input_name) EditText _nameText;
    @Bind(R.id.input_email) EditText _emailText;
    @Bind(R.id.input_password) EditText _passwordText;
    @Bind(R.id.btn_signup) Button _signupButton;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signing);
        ButterKnife.bind(this);
        _signupButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                  signup();
            }
        });
    }
    public void signup(){
        //call the finalactivity and do the 
    }
}

现在终于注册()功能应该调用活动 finalActivity 并打印信息。也许像这样 - 例如,在 finalactivity 中我要显示 -

  

你的名字是:“这里的名字”   
  您的电子邮件是:“在这里发送电子邮件”

我的问题与How do I pass data between Activities in Android application?不同,因为我想传递多个变量(~50),显然不想创建50个Intents。

3 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是使用Intent。

使用Intent

将所需数据从SignUp Activity传递给finalActivity
public void signup(){
    Intent intent  = new Intent(SignUp.this,finalactivity.class );
    intent.putExtra("name", name);//name you get from EditText
    intent.putExtra("email", email);//emailyou get from EditText
    startActivity( intent );  
}

在finalactivity中,在OnCreate()方法中执行此操作

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.final_activity);

    name=(EditText) findViewById(R.id.editText1);
    email=(EditText) findViewById(R.id.editText2);

    String name_v=getIntent().getStringExtra("name");
    String email_v=getIntent().getStringExtra("email");
    name.setText(name_v);
    pass.setText(email_v);


}

希望这有帮助

答案 1 :(得分:0)

在您当前的活动中,通过Intent传递结果:

Intent i = new Intent(FirstActivity.this,SecondActivity.class);
i.putExtra("NAME_KEY", "NAME_VALUE");
i.putExtra("EMAIL_KEY", "EMAIL_VALUE");
i.putExtra("PASSWORD_KEY", "PASSWORD_VALUE");
startActivity(i);

从另一个Activity中检索结果:

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String name = extras.getString("NAME_KEY");
        String email = extras.getString("EMAIL_KEY");
        String password = extras.getString("PASSWORD_KEY");
    }

答案 2 :(得分:0)

ArrayList<Object> object = new ArrayList<Object>();
Intent intent = new Intent(Current.class, Transfer.class);
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(Serializable)object);
intent.putExtra("BUNDLE",args);
startActivity(intent);


Intent intent = getIntent();
Bundle args = intent.getBundleExtra("BUNDLE");
ArrayList<Object> object = (ArrayList<Object>) args.getSerializable("ARRAYLIST");

这可能会。 How to pass ArrayList of Objects from one to another activity using Intent in android? --source