Activity之间跳转要使用Intent类来传递数据。实例化Intent对象后,可以设置跳转到的Activity,不传递任何数据,也可以通过Intent封装数据传递。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站建设、网站设计、普兰网络推广、微信小程序、普兰网络营销、普兰企业策划、普兰品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供普兰建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
Intent有六个构造方法,可自行选择,常用的有Intent(action)、Intent(Context,Class>)和空参数构造。
可以直接使用startActivity(intent)和startActivityForResult(intent,int requestCode)进行跳转,requestCode须不小于0。
也可以封装好数据后再跳转。要封装数据,可直接使用Intent类的方法putExtra(String key, value),类似于Map;也可先封装Bundle对象,再调用putExtras(bundle)封装。
在目标Activity中可以使用getIntent()方法获得Intent对象,再通过intent.getXXXExtra(key)得到对应的值或getExtras()得到Bundle对象,再提取出值即可。
如使用第二种跳转方式,可在目标Activity中调用setResult(int resultCode,intent)方法,该Activity结束后会回到第一个Activity。一般自己调用finish()方法结束自己。返回后会直接回调onActivityResult(requestCode, resultCode, intent)方法,通过code来验证Activity,通过intent传值。
使用startActivityForResult跳转返回后,不管在目标Activity中使用getIntent()方法还是重新new Intent对象返回,requestCode和resultCode对于两个Activity都是唯一的,确定的一一对应。
下面贴出一些代码:
第一个Activity主要代码:
= (EditText)findViewById(R.id.); = (Button)findViewById(R.id.); .setOnClickListener(View.OnClickListener() { onClick(View view) { Intent intent = Intent(MainActivity., Main2Activity.); intent.putExtra(, .getText().toString()); startActivityForResult(intent, ); } }); } onActivityResult(requestCode, resultCode, Intent data) { .onActivityResult(requestCode, resultCode, data); (requestCode==){
//if(resultCode == 0x002){ Toast.(, data.getStringExtra(), Toast.).show(); } Log.(, ); }
目标Activity主要代码:
= (EditText)findViewById(R.id.); = (Button)findViewById(R.id.); String str = getIntent().getStringExtra(); .setText(str); String str2 = str+; .setOnClickListener(View.OnClickListener() { onClick(View view) { Intent intent = Intent(Main2Activity., MainActivity.); intent.putExtra(, ); setResult(, intent); finish(); } });
如有错误之处,欢迎指正。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款