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的主要内容,如果未能解决你的问题,请参考以下文章

Android学习笔记之Intent

android学习笔记

Android学习笔记进阶十三获得本地全部照片

getActivity() 调用导致 RuntimeException:无法启动意图 Intent act=android.intent.action.MAIN

未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com

Android学习笔记 Intent