1、Bundle:使用 Intent 提供的 putExtras()方法将将要携带的数据保存到 Intent
public class MainActivity extends AppCompatActivity {
private EditText userEdit,pwdEdit,rePwdEdit,mailEdit;
private Button commitBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userEdit = (EditText) this.findViewById(R.id.userEditText);
pwdEdit = (EditText) this.findViewById(R.id.pwdEditText);
rePwdEdit = (EditText) this.findViewById(R.id.rePwdEditText);
mailEdit = (EditText) this.findViewById(R.id.mailEditText);
commitBtn = (Button) this.findViewById(R.id.commitBtn);
commitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String user = userEdit.getText().toString(); // 获取用户名
String pwd = pwdEdit.getText().toString();// 获取密码
String rePwd = rePwdEdit.getText().toString();// 确认密码
String mail = mailEdit.getText().toString();// 获取邮箱
if(!"".equals(user) && !"".equals(pwd) && !"".equals(mail)) // 判断输入是否为空
{
if(!rePwd.equals(pwd)) // 判断两次输入密码的是否相同
{
Toast.makeText(MainActivity.this, "两次输入的密码不同,请重新输入", Toast.LENGTH_SHORT).show();
pwdEdit.setText("");
rePwdEdit.setText("");
pwdEdit.requestFocus(); //让密码框在此获取焦点
}
else
{
Intent intent = new Intent(MainActivity.this,RegisterActivity.class);
Bundle bundle = new Bundle(); // 创建并实例化一个 Bundle 对象
bundle.putCharSequence("user",user);
bundle.putCharSequence("pwd",pwd);
bundle.putCharSequence("mail",mail);
intent.putExtras(bundle);
startActivity(intent);
}
}
else
{
Toast.makeText(MainActivity.this, "请将注册信息填写完整", Toast.LENGTH_SHORT).show();
}
}
});
}
}
2、调用另一个 Activity 并返回结果。这时候使用的是 startActivityForResult()方法来启动另一个 Activity
使用下面方法开启新的 Activity
startActivityForResult(intent,CODE); // 用在需要下一个页面回调的时候
在此打开 MainActivity,重写 onActivityResult 方法,在此方法中需要判断 requestCode 和 resultCode 是否相同。
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == CODE && resultCode == CODE)
{
Toast.makeText(MainActivity.this, "data="+data.getExtras().getString("user"), Toast.LENGTH_SHORT).show();
}
}
在 RegisterActivity 中,返回上一步的点击事件
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setResult(0x717,intent); // 设置返回的结果码, 并返回调用该 Activity 的 Activity
finish(); // 关闭当前页
}
});
网友评论