Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将表单数据传递给被调用的活动_Java_Android_Android Intent_Android Activity - Fatal编程技术网

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

我如何从signupActivity中获取所有用户输入字段,该活动目前将电子邮件、密码和其他字段作为用户的输入,并最终使用它

我已经做了xml布局,不知道如何将所有这些字段显示给一个新的活动,当按下注册按钮时,该活动被调用

My 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 
    }
}
最后,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");