今天学习了Intent的基本用法。Intent是什么?Intent在Android中的核心作用就是“跳转”(Android中的跳转机制),同时可以携带必要的信息,将Intent作为一个信息桥梁。最常用的莫过于从一个activity跳转到另一个activity,然后返回到上一个activity。还可以在不同组件间进行数据传递。

Intent可分为两种,显示Intent和隐式Intent。

显式Intent定义对于明确指出了目标组件名称的Intent,我们称之为显式Intent。 即在通过Intent启动Activity时,需明确指定激活组件的名称。如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity。

    Intent intent = new Intent(this, Main2Activity.class);

    startActivity(intent);

I
 显式意图还可以根据目标组件的包名、全路径名来指定开启组

    Intent intent = new Intent();
intent.setClassName("com.android.deskclock","com.android.deskclock.DeskClock"); startActivity(intent);

隐式Intent定义对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。系统会根据隐式意图中设置的动作(action)、类别(category)、数据(Uri和数据类型)找到最合适的组件。

   <activity android:name="com.itcast.intent.Activity02">
<intent-filter>
<action android:name="cn.itscast.xxx"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>


使用隐式意图开启Activity的示例代码如下所示:

Intent intent = new Intent();
// 设置动作和清单文件一样
intent.setAction("cn.itscast.xxx");
startActivity(intent);

显式intent例子:

package com.nyl.intenttest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class MainActivity extends Activity implements View.OnClickListener { private Button btnHome; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnHome = (Button) findViewById(R.id.btnHome);
btnHome.setOnClickListener(this);
} @Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnHome:
Intent it = new Intent();
it.setAction(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
startActivity(it);
break;
}
}
}

隐式intent例子:

package com.nyl.intenttest;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class MainActivity2 extends Activity implements View.OnClickListener { private Button btnTwo; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btnTwo = (Button) findViewById(R.id.btnTwo);
btnTwo.setOnClickListener(this);
} @Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnTwo:
Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
startActivity(it);
break;
}
}
}
<activity android:name=".MainActivity2"
android:label="Activity2">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

 

寒假安卓app开发学习记录(7)的更多相关文章

  1. 寒假安卓app开发学习记录(3)

    今天终于开始正式的安卓软件开发学习.开始用了大约一个小时的时间把创建第一个软件的学习视频观看了一下.跟着视频一边学习一边操作. 首先是创建项目,创建的过程和之前创建Java项目的过程相似.先给app起 ...

  2. 寒假安卓app开发学习记录(1)

    今天是安卓软件开发的第一天.虽然之前有了对javaweb的学习,但是对基于安卓的软件开发还是一无所知.所以,第一步就是寻找学习资源,从慕课网上还有菜鸟教程上都找到了对应的教程.然后就开始了开发的第一步 ...

  3. 寒假安卓app开发学习记录(4)

    今天的任务第一个项目运行并部署.没想到第一个环节就出现了错误,运行之后eclipse报错:Errors occurred during the build.Errors running builder ...

  4. 寒假安卓app开发学习记录(2)

    今天属实是头疼的一天.开始的时候是简单了解了一下安卓的系统架构,了解到大概分为四个部分. 然后看了两节创建安卓项目的课程,准备去实践一下的时候突然发现我的eclipse里竟然没有Android选项.查 ...

  5. 寒假安卓app开发学习记录(6)

    今天把之前学过的内容复习了一遍,然后用了大概一个小时的时间看了看教学视频. 学到的主要内容是如何调试Android程序,以及Android的应用以及打包过程.   调试: 依次点击Run“-”Atta ...

  6. 寒假安卓app开发学习记录(5)

    第一个项目运行成功! 今天主要是看视频 ,学习Android项目的目录结构.大概学习了一个小时左右.然后在网上学习和对比eclipse上的目录,了解每个目录的功能是什么. 了解了Android项目的目 ...

  7. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  8. 高性能Cordova App开发学习笔记

    高性能Cordova App开发学习笔记 文件结构 添加插件 构建准备 各个www的作用,prepare命令会将hello\www的内容会拷贝到platform下的wwww目录,知道该改哪里了吧?如果 ...

  9. 安卓app开发-03-项目的基本开发步骤

    android项目的基本开发步骤 这里分享一下开发 安卓 app 的流程,当然有些感觉不必要,其实不然,前期工作也是极为重要的额,就像开发的时候如果目标不对的话,到后期后很迷的,所以一定要提前做好规划 ...

随机推荐

  1. yii2 response响应配置

    response参数配置 方式一.全局配置 用于接口开发 适用:只有所有请求都是application/json类型时可用. $config = [ 'components' => [ 'res ...

  2. 《京东B2B业务架构演变》阅读

    转载:https://mp.weixin.qq.com/s/5xmmuw8O-I_Fi5bzE-_baA?tdsourcetag=s_pcqq_aiomsg 京东 B2B 业务的定位是让各类型的企业都 ...

  3. 为什么MYSQL分页时使用limit+ order by会出现数据重复问题

    问题描述: MYSQL采用limit进行翻页查询时,搭配order by ,在翻到第二页的时候可能会出现第一页的数据,  示例sql如下: select  a,b from c where d = ' ...

  4. 数据结构与算法之比较排序【Java】

    比较排序与非比较排序的对比 常见的快速排序.归并排序.堆排序.冒泡排序等属于比较排序.在排序的最终结果里,元素之间的次序依赖于它们之间的比较.每个数都必须和其他数进行比较,才能确定自己的位置.在冒泡排 ...

  5. mysql 基础sql语法总结(一)DDL

    mysql数据库: SQL数据库语言可分为四部分: 1.DDL:对数据库或表的进行操作结构操作 2.DML:对表的记录进行更新(增.删.改)* 3.DQL:对表的内容进行查询 **(重难点) 4.DC ...

  6. ADO.NET中的数据库帮助类

    ADO.NET是.net framework中的一个重要模块,用于程序和数据源的连接,它的类都位于 System.Data.dll 中. 用于SQLServer的命名空间:System.Data.Sq ...

  7. kindle怎么导入电子书

    参考网址:https://jingyan.baidu.com/article/59a015e342a165f795886545.html

  8. Ueditor1.4.3.3 asp UTF-8版文件缺失修改方法

    前几天在做一个项目中需要用富文本编辑器,最终选定用Ueditor编辑器,从官网下载源码(http://ueditor.baidu.com/website/download.html),按照文档创建de ...

  9. ssh配置跳板机-带密钥

    ssh配置跳板机堡垒机带密钥 ~/.ssh/config 添加以下配置: # 跳板机地址 Host jumper HostName jumper.com User jumper port 23333 ...

  10. OpenGL 编程指南 (5.2)

    1.使用纹理 GLSL从纹理中读取数据使用内置函数texture的多种重载方法 Gvec4 texture(gsampler1D, float texCoord[,float bias]) Gvec4 ...