调用另一个Activity并返回结果

  在Android应用开发中,有时需要在一个Activity(如接下来要介绍的MainActivity)中调用另外一个Activity(RegisterActivity),当用户在第二个Activity中选择完成后,程序自动返回到第一个Activity中,第一个Activity必须能够获取并且显示用户在第二个Activity中选择的结果;或者,在第一个Activity中将一些数据传递到第二个Activity,由于某些原因,又要返回到第一个Activity中。例如:程序中经常出现的“返回上一步”功能,可以通过Intent和Bundle来实现,与在两个Activity之间交换数据不同的是:

(1)此处需要使用startActivityForResult()方法来启动另外一个Activity。

        startActivityForResult(intent,CODE)

(2)打开MainActivity,定义一个名称为CODE的常量,用于设置requestCode请求码。如本例中的:

       final static int CODE = 1;

(3)同时打开第一个Activity(MainActivity)重写onActivityResult()方法。当第二个Activity(RegisterActivity)被关闭时,这个onActivityResult()方法会被调用,同时执行方法体中相应的操作。

        @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
if(requestCode == CODE && resultCode == RegisterActivity.CODE)
{
((EditText)findViewById(R.id.pwd)).setText("");          //清空“密码编辑框
((EditText)findViewById(R.id.repwd)).setText("");       //清空“确认密码编辑框
}
}

(4)打开RegisterActivity中,在onCreate()方法中,获取“返回上一步”按钮,并为其添加单击事件监听器。再重写onClick()方法,首先设置返回的结果码,并返回调用该Activity的Activity(即MainActivity),然后关闭当前的Activity。

                Button back = (Button)findViewById(R.id.back);
back.setOnClickListener(new View.OnClickListener() 
{

@Override
public void onClick(View v) 
{
setResult(CODE);
finish();
}
});

运行程序的相关截图:

1.MainActivity,填写相关的注册信息


2.由MainActivity启动RegisterActivity显示注册的相关信息


3.点击RegisterActivity界面中的“返回”按钮返回到MainActivity界面,同时执行onActivityResult()中的相关操作

(清空刚才填写注册信息中的“密码”和“确认密码”编辑框)


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值