Intent的用法(初步)

  可视化的知识便于复习和查找(注:笔记以学习《androi第一行代码》这本书为基础)

  什么是Intent?Intent在Android中的核心作用就是“跳转”(Android中的跳转机制),同时可以携带必要的信息,将Intent作为一个信息桥梁。最熟悉的莫过于从一个活动跳转到另一个活动,然后返回到上一个活动。不过Intent的“跳转”作用不仅于此,Intent还可以在其他地方使用,比如在碎片中跳转,接受到一个广播后自动跳转,但是这个时候没有活动(上下文)作为第一个参数该怎么办?问题早已解决。使用隐式跳转即可,他只需要一个参数,下面会提到隐式跳转,这就是有了显式跳转之后,隐式跳转还能存在的一个理由吧。

  接才来进入正题,学习使用Intent类和相关的API:

1)显示跳转到下一个活动。

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);   //startActivity方法

2)隐式跳转到下一个活动:需要下一个活动提供“匹配接口”Intentfilter。就相当于口令,一个人发出一条口令,另一个人对上了说明是自己人。

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:scheme="http"/>
</intent-filter>

Intent intent2 = new Intent("com.example.lenovo.component_activity");
intent2.addCategory("com.example.lenovo.component_activity.MY_CATEGORY");
startActivity(intent2);
Intent intent3 = new Intent(Intent.ACTION_VIEW);
intent3.setData(Uri.parse("http://www.baidu.com"));//tel:10086    
startActivity(intent3);

Intent.ACTION_VIEW   //android.intent.action.VIEW

Intent.ACTION_DIAL

com.example.lenovo.component_activity.ACTION_START

3)传递数据

上一个活动向下一个活动传递数据

intent.putExtra("extra_data", "dafadfadfa");   //键值对

下一个活动提取数据

intent = getIntent(); 
String data = intent.getStringExtra("extra_data");    //通过键提取数据

getIntExtra(String key, int defaultInt);

getBooleanExtra(String key, boolean defaultBoolean);

getCharExtra(String key, char defaultChar);

4)返回数据给上一个活动

上一个活动发出请求

startActivityForResult(intent, 1);   //请求码

下一个活动返回数据

Intent intent = new Intent();
intent.putExtra("data_return", "Hello MainActivity");
setResult(RESULT_OK, intent);
finish();

上一个活动接受信息

//重写onActiviResult方法
@Override
protected void onActivityResult(int requstCode, int resultCode, Intent data){
    switch (requstCode){   //请求码
        case 1:
            if(RESULT_OK == requstCode){  //处理结果码 RESULT_CANCELED
                String returnResult = data.getStringExtra("data_return");
            }
            break;
        default:
    }
}


  • 13
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值