博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记•从零开始•第二天•Intent-穿梭在Activity之间
阅读量:2429 次
发布时间:2019-05-10

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

Android学习笔记•从零开始•第二天•Intent-穿梭在Activity之间

转载请注明出处

通过第一天的基本知识学习,对Android有所熟悉,今天主要是对Intent的学习。

使用marddown编辑器,感觉还不错!
–>点击进入
–>

1.显式Intent

测试在Button的onClick函数里写入:

Intent intent = new Intent(First.this,Second.class);        startActivity(intent);

通过startActivity方法,由FirstActivity转入SecondActivity。

如果想回到上一个Activity,按Back键。

2.隐式Intent

通过action和category,由系统辨认需要转向的Activity。

action和category属性在AndroidManifest.xml中的想要赋予的Activity标签里添加。
比如我们给SecondActivity添加action和category

可以查看下启动Activity(主Activity)的intent-filer标签。

在onClick中使用:

Intent intent = new Intent(“com.cleopard.activitytest.ACTION_START”);        startActivity(intent);

Category属性中android.intent.category.DEFAULT是默认属性,使用时不用写上。

每个Intent中只能指定一个action,但是却能指定多个category;可以调用Intent中的addCategory()方法添加一个category(需要在AndroidManifest中添加)。

3.通过Intent启动其他应用(浏览器)

Intent intent =new Intent(Intent.ACTION_VIEW);//其常量值为android.intent.action.VIEW    Intent.setData(Uri.parse(“http://cleopard.download.csdn.net”));    startActivity(intent);

首先给Intent指定了内置的动作Intent.ACTION_VIEW,然后通过Uri.Parse()方法解析网址,使用setData()传递对象。

4.Intent-fliter中的data属性

精确指定当前活动响应什么类型的数据。

例如activity具有浏览功能的data属性:

则点击打开网址时,会提示使用谁登录。

Android学习笔记•从零开始•第二天•Intent-穿梭在Activity之间
geo:地理位置。tel:拨打电话。等等。。例如:

Intent intent = new Intent(Intent.ACTION_DIAL);        intent.setData(Uri.parse(“tel:10086”));        startActivity(intent);

5.Intent间传递数据—FirstActivity数据传入到SecondActivity

通过putExtra()方法。

第一个activity放入data:

String data=”Hello,CLeopard!”;        Intent intent = new Intent(FirstActivity.this,SecondActivity.class);        intent.putExtra(“extra_data”,data);        startActivity(intent);

第二个activity取出data:

Intent intent=getIntent();        String data=intent.getStringExtra(“extra_data”);

由于传入的是String所以使用getStringExtra(),其他类推。

6.Intent间传递数据—SecondActivity返回数据到FirstActivity

使用startActivityForResult()方法。

1)FirstActivity中:

Intent intent=new Intent(FirstActivity.this,SecondActivity.class);        startActivityForResult(intent,1);

*1 表示辨别,接收返回数据会用到

2)SecondActivity中写在关闭按钮事件里,既返回:

Intent intent = new Intent();            Intent.putExtra(“data_return”,”Hello,CLeopard!”);            setResult(RESULT_OK,intent);//重要,向上一活动返回数据;一般只用RESULT_OK和RESULT_CANCELED两个值            finish();//关闭

3)FirstActivity中重写onActivityResult()方法:

@Override            protected void onActivityResult(int requestCode,int resultCode,Intent data){                switch(requestCode)                case 1:                    If(resultCode==RESULT_OK){                        String returnedData=data.getStringExtra(“data_return”);                    }                    break;                default:                }            }

共有三个参数,对照上面的内容。

4)当然也可以写到返回事件里,重写onBackPressed()方法:

@Override            public void onBackPressed(){                //…上面按钮事件代码            }
今天到此结束 2015/03/09 13:50 CLeopard
转载请注明出处
你可能感兴趣的文章
Spring Boot 中的响应式编程和 WebFlux 入门
查看>>
阿里终结裁员危机!坚决不拿 10 万阿里人祭天!
查看>>
如何从零开始两天撸一个微信小程序?!(内含源码)
查看>>
女神?御姐?文艺?这样的程序媛你绝没见过! | 程序员有话说
查看>>
“软件外包城”下的马鞍山 | 程序员有话说
查看>>
那些上相亲网站的程序员,后来怎么样了?
查看>>
程序员如何实现财富自由?
查看>>
你我的父母,都在被互联网“割韭菜”
查看>>
程序员下班后都忙些啥?| 程序员有话说
查看>>
网易不再从容
查看>>
万万没想到你们竟是这样的程序员 | 程序员有话说
查看>>
Java 帝国对 Python 的渗透能成功吗?
查看>>
从培训机构出来的程序员,后来都怎么样了? | 程序员有话说
查看>>
程序员写代码没激情该怎么破?
查看>>
我是如何从低端面畜到高端面霸的?
查看>>
他修过车、杀过鱼,最终进入阿里巴巴打造 9 个本地版支付宝!
查看>>
百面机器学习!算法工程师面试宝典!| 码书
查看>>
苹果无人驾驶拿 124 个工程师祭天!
查看>>
漫画 | 一个前端渣渣的成功逆袭
查看>>
与吴恩达并肩战斗,她是 AI 界的女超人!|人物志
查看>>