android--startactivityforresult按back键重写onBackPressed()

本文介绍了解决Android应用中从Activity2返回Activity1时出现的空指针异常问题。通过重写onBackPressed()和onActivityResult()方法,确保在按下返回键时能够正确地返回数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期在开发android项目时,Activity1使用startactivityforresult方法跳转到Activity2,但是点击back键时,报错。

解释:当不满足触发条件就按返回键的时候,就要对此进行检测。尤其是当前Activity需要往前一个Activity传送消息时。即Activity1跳转Activity2如果采用的是startActivityForResult这种方式,如果不重写返回键,程序不知道要返回给Activity1什么内容就会报错。因此,必须对Activity2的返回按键重写,重写onBackPressed()

所以在Activity2中,重写onBackPressed()方法。

	@Override
	public void onBackPressed() {
		Intent intent = new Intent();
		this.setResult(0, intent);
        this.finish();
	}
这是谷歌通用最流行的方法。但本人在这几天项目中也遇到过这样的问题,照着试做,发现还是会出现null异常,
于是找找资料重新整理思路一边,发现问题所在,已解决.
首先在写onActivityResult()页面的方法.
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (data != null) {
			String addAddress = data.getStringExtra("AddAddress");
			switch (resultCode) {
			case 0:
				aq.id(R.id.et_name).text(addAddress);
				break;
			case 1:
				aq.id(R.id.et_phone).text(addAddress);
				break;
			case 2:
				aq.id(R.id.et_detail_address).text(addAddress);
				break;
			default:
				break;
			}		
		}
	}
注意:Intent一定要判空,Intent一定要判空,Intent一定要判空 我就是在这一步卡了点时间,找的全部资料也没提,最后才想到。原因是在AvtB跳回来的时候什么都不做的话就会传个null,可是
onActivityResult方法收到空时,并不会在你的setText()里面传空,所以就报错

跳转的Act方法:
	@Override
	public void onBackPressed() {
		Intent intent = new Intent();
		this.setResult(0, intent);
        this.finish();
	}


本人新手,如有不对地方,请指出。谢谢


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值