初学安卓开发随笔之 Intent 用法_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 初学安卓开发随笔之 Intent 用法

初学安卓开发随笔之 Intent 用法

 2017/7/28 5:31:08  叶碎夜  程序员俱乐部  我要评论(0)
  • 摘要:首先,对于安卓开发,目前世界上流行的是使用的是Androidstudio2.0。(hh学着来呗书上说用这个,,)今后就定一个计划每天更新一个Android随笔,增强一下自控力吧!!!(∩_∩)相信自己可以做到!!!第一天Intent用法直接上代码可见intent用法大体上有三种显示调用构造出intent后传入FirstActivity.this作为上下文传入SecondAcctivity
  • 标签:用法 Intent Ten 开发 随笔

首先,对于安卓开发,目前世界上流行的是使用的是Android studio 2.0 。(hh 学着来呗 书上说用这个,,)

今后就定一个计划 每天更新一个Android 随笔,增强一下自控力吧!!!

(∩_∩)  相信自己可以做到!!!

第一天 Intent用法

直接上代码

可见intent用法大体上有三种

  1. 显示调用   构造出intent后 传入FirstActivity.this 作为上下文 传入SecondAcctivity.class 作为目标活动  最后用startActivity执行这个Intent
  2. 隐式调用  
    1. 首先 给出要被动响应的活动 在AndroidManifest.xml里加上 action 和 category(MY_CATEGORY这个是后面可以调用函数加上的 暂时可以不加)
    2. 然后即可
      Intent intent = new Intent("com.example.activitytest.ACTION_START");
      startActivity(intent); 进行隐式调用 其中 intent这种创建方法便是传入了action的字符串,表明我要启动的活动,category 这里是default表示为默认的category。
    3. 每个Intent可以指定一个action 但是可以指定多个category 下面可以通过这句来增加一个category。  intent.addCategory("com.example.activitytest.MY_CATEGORY");
    4. 注意这里 对应一定要在要启动的活动的 intent-filter 加入 category 声明!!!
  3. 其他用法
    1.   打开网页  这里首先 要配置<intent-filter>里的data标签!!!    使得ThirdActivity可以响应所有的http协议的intent
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("http://www.baidu.com"));
      startActivity(intent);
    2. 打电话  协议为tel

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

    3.    传数据
      1.   首先 你想把活动FirstActivity的数据传给活动SecondActivity
      2.  String data = "hello SecondActivity";
         Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
         intent.putExtra("extra_data", data);
         startActivity(intent); 用的是putExtra 传递数据 extra_data为键值 后面的data为实际要传的数据!!!
      3. 然后在SecondActivity 先用getIntent获得用于启动本活动的intent 在调用get X Extra获取传递的数据 X代表 类型 有String Boolean Int等等
      4. 不仅仅如此 还可以传递数据给上一个活动哦。。。 方法是用 startActivityForResult方法来 做到对一个活动在销毁时返回一个本活动的结果给上一个活动
      5. Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivityForResult(intent, 1); 这里用startActivityForResult启动SecondActivity 而不是startActivity。其中1是请求码 只要是唯一值就可以!!!
      6. 这里在SecondActivity里添加了活动结束后的返回数据逻辑    setResult方法是用来专门向上一个活动返回数据的,putExtra把数据存在了intent里。 一般第一个参数有RESULT_OK 和 RESULT_CANCELED 第二个参数是带有数据的intent 。  finish 销毁活动。

      7. 由于返回了FirstActivity活动 故在这里重写这个方法来接受返回的数据。

        requestCode是请求码 resultCode是setResult时设置的处理结果 data就是传入的带数据的intent
      8. !!!这里是通过点击按钮结束的活动从而进行传递数据  如果是按下back键回到FirstActivity的 我们可以重写 onBackPressed()方法来解决这个问题啦

 

以上是小叶子自己学习中做的一些笔记哈,欢迎大家一起讨论,指出不足,共同进步!!!

发表评论
用户名: 匿名