Java 将表单数据传递给被调用的活动
我如何从signupActivity中获取所有用户输入字段,该活动目前将电子邮件、密码和其他字段作为用户的输入,并最终使用它 我已经做了xml布局,不知道如何将所有这些字段显示给一个新的活动,当按下注册按钮时,该活动被调用 My SignupActivity.java:-Java 将表单数据传递给被调用的活动,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我如何从signupActivity中获取所有用户输入字段,该活动目前将电子邮件、密码和其他字段作为用户的输入,并最终使用它 我已经做了xml布局,不知道如何将所有这些字段显示给一个新的活动,当按下注册按钮时,该活动被调用 My SignupActivity.java:- public class SignupActivity extends AppCompatActivity { @Bind(R.id.input_name) EditText _nameText; @B
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
}
}
最后,signup()函数应该调用活动finalActivity并打印信息。也许像这样-
例如,在我想展示的结尾部分-
你的名字是:“名字在这里”
你的邮件是:“这里发邮件”
我的问题不同于我想传递多个变量(~50),显然不想创建50个意图。解决这个问题的一个方法是使用意图 使用Intent将所需数据从注册活动传递到最终性
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);
}
希望这对您当前的活动有所帮助,请通过
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);
从其他活动检索结果:
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");
}
ArrayList对象=新建ArrayList();
意向意向=新意向(Current.class、Transfer.class);
Bundle args=新Bundle();
args.putSerializable(“ARRAYLIST”,(Serializable)对象);
意向。额外(“捆绑”,args);
星触觉(意向);
Intent-Intent=getIntent();
Bundle args=intent.getBundleExtra(“Bundle”);
ArrayList对象=(ArrayList)args.getSerializable(“ArrayList”);
这可能就够了。
--source@SatanPandeya这很有帮助,但我需要传递多个变量,而不仅仅是一个变量。我是否必须为要传递的每个新变量创建新的意图?这是你要的。非常感谢,但是有更方便的方法吗?我是说每次我都要创造一个新的意图吗?假设我需要传递100个变量。。。。类似于数组意图的东西???是的,你可以通过意图传递arraylist,看看这个井,它做到了。谢谢。请更新您的答案,以便其他人可以跟进。现在它被接受了,是的。不过我已经有了答案。谢谢
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");