博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Intent应用
阅读量:5270 次
发布时间:2019-06-14

本文共 3546 字,大约阅读时间需要 11 分钟。

  1. 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);

    }

    }

    }

  2.  

    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();

    }

    });

    }

    }

  3.  

    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

    删除特定的数据

  4.  

    与动作Action相关联的数据Data介绍

    VIEW_ACTION content://contacts/1显示标示符为1的联系人的详细信息

    EDIT_ACTION content://contacts/1编辑标示符为1的联系人的详细信息

    VIEW_ACTION content://contacts/显示所有联系人列表

    PICK_ACTION content://contacts/显示所有联系人的列表,并且允许用户在列表中选择一个联系人,然后把这个联系人返回给父Activity

  5.  

    Intent中其他属性介绍

    类别category:它为执行动作的附加信息

    数据类型type:显式指定Intent的目标组件的类名称。

    组件component:指定Intent的目标组件的类名称

    附加信息extras:是其他所有附加信息的集合

  6.  

    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,这些类别必须全部出现在组件的类别列表中

转载于:https://www.cnblogs.com/ll564345575/p/3930301.html

你可能感兴趣的文章
Struts2学习(三)
查看>>
使用电子邮件模板
查看>>
Callable和Runnable和FutureTask
查看>>
GitHub 多人协作开发 三种方式:
查看>>
文本域添加编辑器
查看>>
Yum安装MySQL以及相关目录路径和修改目录
查看>>
java获取hostIp和hostName
查看>>
RxJava结合Retrofit和Volley简单比较
查看>>
iOS 企业版 安装失败 原因
查看>>
ThreadLocal 理解
查看>>
关于web服务器和数据库的各种说法(搜集到的)
查看>>
一个 forceLayout() 和 requestLayout() 的测试
查看>>
【转】使用js触发事件
查看>>
《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP
查看>>
C# Stream 和 byte[] 之间的转换
查看>>
自定义不等高的cell-(storyboard)
查看>>
Cracking the code interview
查看>>
linux命令 rpm
查看>>
OMG: daily scrum nine
查看>>
【蓝桥杯】历届试题 连号区间数(运行超时)
查看>>