Android学习笔记三:用Intent串联activity
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android学习笔记三:用Intent串联activity相关的知识,希望对你有一定的参考价值。
一:Intent
Intent可以理解为 意图。
我们可以通过创建intent实例来定义一个跳转意图,意图包括:要跳转到哪个页面、需要传递什么数据。
然后通过startActivity(intent)来启动跳转。
有两种方式定义Intent:显式Intent、隐式Intent。
二:显式Intent
1)我们可以在actvity的java文件中,通过代码显示定义Intent,参数为:从哪个页面,跳转到哪个页面。
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivity(intent);
2) 我们还可以通过putExtra(key,value)的方法,往intent传入数据,携带到跳转到目标页。
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra(name, data); startActivity(intent);
在跳转目标页到java文件中,通过getIntent()提取链接到该activyty的intent实例,然后通过intent实例.getXXExtra(name)提取数据,XX是数据类型。
3)我们也可以在跳转发起页获取到跳转目标页回传到数据
跳转发起页:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent, 1);//第一个参数是intent,第二个是请求码 //重写结果回传函数,监听结果码以及回传的intent //第一个参数:请求码:用于校验是否该页面发起的跳转请求的回传结果 //第二个参数:结果码:回传的结果码类型 //第三个参数:Intent实例:跳转目标页通过一个intent来携带数据,返回发起页。 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) {//根据请求码来匹配是哪个跳转请求的回传结果 case 1: if(resultCode == RESULT_OK) {//根据结果码,执行不同结果码对应的操作 String name = "return_data"; String returnData = data.getStringExtra(name);//通过回传的intent提取数据 ......//使用数据:赋值给变量、调用其他函数、赋值给视图控件等 } break; default: } }
跳转目标页:
Intent intent1 = new Intent();//创建回传的intent实例 intent1.putExtra(name, data);//携带数据 setResult(RESULT_OK, intent1);//作为结果进行回传
以上是关于Android学习笔记三:用Intent串联activity的主要内容,如果未能解决你的问题,请参考以下文章
getActivity() 调用导致 RuntimeException:无法启动意图 Intent act=android.intent.action.MAIN
未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com