zoukankan      html  css  js  c++  java
  • Intent显式和隐式使用

    显式Intent(意图明确):

    FirstActivity.java
    public class FirstActivity extends AppCompatActivity {
    
       ........
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
              startActivity(intent); } });
     ........
    }

      当点击事件发生之后,跳转到SecondActivity

    隐式Intent1(启动自己程序内的活动):

    FirstActivity.java
    public class FirstActivity extends AppCompatActivity {
    
       ........
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent("com.example.activitytest.ACTION_START");
              startActivity(intent);
                }
            });
    
     ........
    
    }

    AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       .......
    
        <application
            .......

    <activity android:name=".FirstActivity" android:label="This is FirstActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
    <activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.activitytest.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
    </application> </manifest>

      在AndroidManifest.xml中对SecondActivity的注册活动进行添加,添加action和category。 

      当FirstActivity中的Intent指定内容SecondActivity的注册活动中<action>内容相匹配时,即可实现跳转到SecondActivity。(android.intent.category.DEFAULT是默认的category,在startActivity被调用时会自动将这个category加入到intent)

    注意⚠️:

    1、每个Intent只能有一个action,可以有多个category;

    2、如果Intent添加多个category,则需要在<intent-filter>......</intent-filter>中声明category

    隐式Intent2(启动其他程序的活动):

    调用系统浏览器打开网页

    public class FirstActivity extends AppCompatActivity {
    
       ........
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
              //首先指定Intent的action。 其中Intent.ACTION_VIEW是Android系统内置动作 intent.setData(Uri.parse("http://www.baidu.com"
    ));
              //通过Uri.parse()将字符串解析成Uri对象,再调用setData()将Uri对象输入intent           startActivity(intent);
    } });  ........ }
    
    
    
  • 相关阅读:
    Python异步任务模块之-celery
    Atom 编辑器侧边栏忽略隐藏文件
    判断字符串是否为回文 python
    python 命令行工具 fire
    Appium自动化测试-iOS
    视频转换工具ffmpeg
    nodejs顺序执行shell
    Jenkins 邮箱配置及问题解决
    mac配置php
    appium镜像设置
  • 原文地址:https://www.cnblogs.com/qianbin/p/8448685.html
Copyright © 2011-2022 走看看