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);
    } });  ........ }
    
    
    
  • 相关阅读:
    【面试题037】两个链表的第一个公共结点
    【面试题036】数组中的逆序对
    【面试题035】第一个只出现一次的字符
    WebService 序列化和反序列化
    Cookies设置,获取,删除
    Session 存储和失效方式
    Render 使用
    批量保存 htm
    js属性prototype的使用
    水晶报表 IE设置
  • 原文地址:https://www.cnblogs.com/qianbin/p/8448685.html
Copyright © 2011-2022 走看看