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);
    } });  ........ }
    
    
    
  • 相关阅读:
    Office 文档新漏洞,黑客可劫持系统
    Serv-U服务器漏洞,黑客可远程执行程序
    东方联盟提出基于机器学习的蓝牙认证方案
    AC 自动机套路总结
    AC 自动机
    二次扫描与换根法
    虚实链剖分(LCT)
    关于加密和加签的说明
    python3 RSA的加解密和签名/验签 简单实现 --Crypto
    Java协变、逆变、类型擦除
  • 原文地址:https://www.cnblogs.com/qianbin/p/8448685.html
Copyright © 2011-2022 走看看