android intent

android intent负责程序跳转和传递数据。如果把Activity比作积木的话,那么Intent就是胶水。也就是把不同的继母粘连起来。或者说Activity是不同的手机屏幕,而intent就是把不同的手机屏幕粘连起来的胶水。
另外,学习android intent,还要了解android activity知识,请参阅相关文档。
下图是“2Intent应用举例”图示。

步骤/方法

  • 01

    Intent用法 1.1启动一个特定的Activity Intent intent=new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); 1.2启动一个未指明的Activity Intent inter=new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:115-1345”)); startActivity(intent); 1.3处理一个Activity的返回值 Public void onCreate(Bundle saveInstanceState){ super.onCreate(savedInstanceState); listener1=new OnClickListener(){ public void onClick(View v){ Intent intent1=new Intent(ActivityMain.this,Activity1.class); Intent1.putExtra(“activityMain”,”数据来自activityMain”); startActivityForResult(intent1,REQUEST_CODE); } }; Listener2=new OnClickListener(){ public void onClick(View v){ setTitle(“这是在ActivityMain”); Intent intent2=new Intent(ActivityMain.this,Activity2.class); startActivity(intent2); } }; setContentView(R.layout.main); button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(listener1); button2=(Button)findViewById(R.id.button2); button2.setOnClickListener(listener2); setTitle(“ActivityMain”); } @Override Protected void onActivityResult(int requestCode,int resultCode,Intent data){ If(requestCode==REQUEST_CODE){ If(resultCode==RESULT_CANCELED) setTitle(“取消”); else if(resultCode==RESULT_OK){ String temp=null; Bundle extras=data.getExtras(); If(extras!=null){ Temp=extras.getString(“store”); } setTitle(temp); } } }

  • 02

    Intent应用举例 Activity01.java public class Activity01 extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置显示main.xml布局 */ setContentView(R.layout.main); /* findViewById(R.id.button1)取得布局main.xml中的button1 */ Button button = (Button) findViewById(R.id.button1); /* 监听button的事件信息 */ button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */ intent.setClass(Activity01.this, Activity02.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity01.this.finish(); } }); } } Activity02.java public class Activity02 extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置显示main2.xml布局 */ setContentView(R.layout.main2); /* findViewById(R.id.button2)取得布局main.xml中的button2 */ Button button = (Button) findViewById(R.id.button2); /* 监听button的事件信息 */ button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */ intent.setClass(Activity02.this, Activity01.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity02.this.finish(); } }); } }

  • 03

    Android系统自带的Action介绍 3.1ACTION_MAIN Android.intent.action.MAIN,在每个AndroidManifest.xml问洞中都能看到,标记当前的Activity作为一个程序的入口。 3.2ACTION_VIEW 将数据显示给用户 3.3ACTION_DIAL 用于描述给用户打电话的动作 3.4ACTION_PICK 从特定的一组数据中进行选择数据操作 3.5ACTION_DEIT 编辑特定的数据 3.6ACTION_DELETE 删除特定的数据

  • 04

    与动作Action相关联的数据Data介绍 VIEW_ACTION content://contacts/1显示标示符为1的联系人的详细信息 EDIT_ACTION content://contacts/1编辑标示符为1的联系人的详细信息 VIEW_ACTION content://contacts/显示所有联系人列表 PICK_ACTION content://contacts/显示所有联系人的列表,并且允许用户在列表中选择一个联系人,然后把这个联系人返回给父Activity

  • 05

    Intent中其他属性介绍 类别category:它为执行动作的附加信息 数据类型type:显式指定Intent的目标组件的类名称。 组件component:指定Intent的目标组件的类名称 附加信息extras:是其他所有附加信息的集合

  • 06

    Android解析Intent实现 6.1直接Intent:指定了component属性的Intent或者setClass 6.2间接Intent:没有指定comonent属性的Intent。 6.3如果Intent指明了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不匹配 6.4如果Intent没有提供type,系统将从data中得到数据类型 6.5如果Intent中的数据不是具体内容而是URI形式的话,则将根据Intent中数据的scheme进行匹配 6.6如果Intent指定了一个或多个category,这些类别必须全部出现在组件的类别列表中。

(0)

相关推荐

  • 最全面的Android Studio使用教程(图文)

    Android Studio是一套面世时间还不长的IDE(即集成开发环境),目前已经免费向谷歌及Android的开发人员发放.Android Studio以IntelliJ IDEA为基础,后者同样是 ...

  • Android studio教程:[6]创建多个Activity

    通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面.于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Acti ...

  • 最全面的Android Studio使用教程

    Android Studio是一套面世时间还不长的IDE(即集成开发环境),目前已经免费向谷歌及Android的开发人员发放.Android Studio以IntelliJ IDEA为基础,后者同样是 ...

  • android 纯c/c++开发

    新建一个Natvie工程 01 打开eclipse: 02 打开菜单->File->New->Android Application: 03 设置工程名,sdk版本,注意:主题设置为 ...

  • Android 拨号器 源代码

    Android 拨号器 源代码 操作方法 01 AndroidManifest.xml: <?xml version="1.0" encoding="utf-8&q ...

  • Android中Service实时数据交互

    本文实例讲述了Android中Service实时向Activity传递数据的方法.分享给大家供大家参考.具体如下: 这里演示一个案例,需求如下: 在Service组件中创建一个线程,该线程用来生产数值 ...

  • android service攻略

    一般来说,Android程序主要由4部分组成:Activity.Broadcast Intent Receiver.Service.Content Provider. 步骤/方法 01 Service ...

  • Android 4大组件之一Activity

    操作方法 01 Activity 清单文件: 1.所有的应用程序必须要有清单文件 在manifest节点下需要声明当前应用程序的包名 2.包名:声明包的名字,必须唯一 如果两个应用程序的包名和签名都相 ...

  • 友推常见问题和解决方案汇总

    操作方法 01 友推是比较好的开源的分享组件.为了方便开发者能快速地开发分享组件,我将友推常见问题和解决方案汇总分享给大家.希望对各位使用友推的开发者有所帮助 1) v4包版本冲突,解决方法在lib工 ...