Intent的用法(1)

  • 时间:
  • 来源:互联网

  什么是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:
}
}


qq_32534441
发布了255 篇原创文章 · 获赞 115 · 访问量 11万+

本文链接http://element-ui.cn/news/show-1313.aspx