• 安卓入门2


    使用Intent在活动间穿梭(Intent不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据)

    1、使用显式Intent

    基于安卓入门1的内容,继续在ActivityTest项目中再创建一个活动。右击com.example.administrator.activitytest包->New->Activity->Empty Activity,会弹出一个创建活动的对话框,将活动命名为SecondActivity,并勾选Generate Layout File,给布局文件起名为second_layout,不勾选Launcher Activity选项,然后点击Finish。

    Android Studio会自动生成SecondActivity.java和second_layout.xml这两个文件。在second_layout中添加一个按钮Button 2(步骤同前),SecondActivity中的代码自动生成一部分,保持默认不变。

    AndroidManifest.xml已经注册过活动,打开如下:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.example.administrator.activitytest">
     4 
     5     <application
     6         android:allowBackup="true"
     7         android:icon="@mipmap/ic_launcher"
     8         android:label="@string/app_name"
     9         android:supportsRtl="true"
    10         android:theme="@style/AppTheme">
    11         <activity android:name=".MainActivity">
    12             <intent-filter>
    13                 <action android:name="android.intent.action.MAIN" />
    14 
    15                 <category android:name="android.intent.category.LAUNCHER" />
    16             </intent-filter>
    17         </activity>
    18         <activity android:name=".SecondActivity"></activity>                //SecondActivity不是主活动,不需要配置<intent-filter>标签里的内容
    19     </application>
    20 
    21 </manifest>

    修改安卓入门1中的MainActivity中的按钮点击事件,在MainActivity这个活动的基础上打开SecondActivity这个活动,代码如下:

    1    button1.setOnClickListener(new View.OnClickListener(){
    2         @Override
    3         public void onClick(View v){
    4             Intent intent=new Intent(MainActivity.this,SecondActivity.class);  //第一个参数Context要求提供一个启动活动的上下文,第二个参数Class指定想要启动的目标活动        
    5             startActivity(intent);                                             //startActivity()用于启动活动
    6         } 
    7    });

    重新运行程序,在MainActivity界面点击按钮成功启动SecondActivity这个活动。

    2、使用隐式Intent(并不指明我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent并找出合适的活动去启动)

    AndroidManifest.xml下,在<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category。只有<action>和<category>中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent。

    1  <activity android:name=".SecondActivity">
    2       <intent-filter>
    3             <action android:name="com.example.administrator.activitytest.ACTION_START"/>
    4 
    5             <category android:name="android.intent.category.DEFAULT"/>
    6       </intent-filter>
    7  </activity>

    修改MainActivity中按钮的点击事件,代码如下:

    1    button1.setOnClickListener(new View.OnClickListener(){
    2        @Override
    3        public void onClick(View v){
    4             Intent intent=new Intent("com.example.administrator.activitytest.ACTION_START");
    5             startActivity(intent);
    6        }
    7    });

    重新运行程序,在MainActivity界面点击按钮成功启动SecondActivity这个活动(打开自己程序内的活动)。

     2.1使用隐式Intent,也可以启动其他程序的活动,比方调用系统的浏览器来打开网页。

    修改MainActivity中按钮点击事件的代码,如下:

    1    button1.setOnClickListener(new View.OnClickListener(){
    2          @Override
    3          public void onClick(View v){
    4               Intent intent=new Intent(Intent.ACTION_VIEW);
    5               intent.setData(Uri.parse("http://www.baidu.com"));                  //将网址字符串解析为Uri对象,再调用setData()方法将这个Uri对象传递进去
    6               startActivity(intent);
    7          }
    8    });

    重新运行程序,在MainActivity界面点击按钮成功启动系统浏览器。

  • 相关阅读:
    Python全栈开发之6、面向对象
    Python全栈开发之5、模块
    kvm恢复和删除快照
    virsh命令和虚拟机克隆
    Python全栈开发之4、迭代器、生成器、装饰器
    索引
    字段属性--唯一键
    安装虚拟机
    字段属性--自增长
    centos7安装kvm
  • 原文地址:https://www.cnblogs.com/cxq1126/p/7149710.html
Copyright © 2020-2023  润新知