Android 开发

Android 入门(2)-使用intent穿梭于活动

2018-08-26  本文已影响0人  正经龙
黑子

在使用Android的应用的时候,我们时常会见到一个页面到一个页面的切换,这一节我们就将介绍Android开发中的活动切换——Intent

Intent共有两种 显式Intent与隐式Intent

显式intent

public void onClick(View v) {
                Toast.makeText(FirstActivity.this, "you will go to SecondActivity", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                startActivity(intent);
            }

顾名思义,显式Intent就是通过显式的方式调用 Intent,在上面的代码中我们使用了Intent的含参的构造函数,第一个参数是调用活动的当前类,第二个参数是目标类,这里很明确的指出目标类是SecondActivity,所以我们把这样的Intent叫做显式Intent.

隐式Intent

隐式intent是不指定我们打开某一个具体的活动,而是根据当前intent让系统自己去判断我们要打开的活动

首先我们进入到AndroidMainifest.xml中进行一些活动的标识

        <activity android:name=".SecondActivity">
            <intent-filter>
                <action android:name="android.intent.action.ACTION_START"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="com.example.yaomenglong.testproject.MY_CATEGORY"/>
            </intent-filter>
        </activity>

我们使用intent-filter对SecondActivity进行标识,我们自定义他的category为com.examples.yaomenglong.testproject.MY_CATEGORY

然后回到FirstActivity中进行隐式Intent创建

            public void onClick(View v) {
                Toast.makeText(FirstActivity.this, "you will go to SecondActivity", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent("android.intent.action.ACTION_START");
                intent.addCategory("con.example.yaomenglong.testproject.MY_CATEGORY");
                startActivity(intent);
            }

使用android.intent.action.ACTION_START创建intent
使用addCategory添加我们自定义的com.example.yaomenglong.testproject.MY_CATEGORY
最后startActivity打开secondActivity

当我们点击Button时将会从FirstActivity转到SecondActivity FirstActivity SecondActivity

附:

使用内置intent可以打开其他应用,下面介绍使用intent打开百度与拨打电话

1.打开百度

        button2.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("http://www.baidu.com"));
                startActivity(intent);
            }
        });

使用内置的Intent.ACTION_VIEW
利用setData打开Uri.parse解析过的字符串
点击按钮即可打开百度网页

百度

2.拨打电话

        button3.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel:10086"));
                startActivity(intent);
            }
        });

使用内置的Intent.Action_DIAL
使用setData打开解析后的字符串
开启一个新的活动
点击按钮即可打开拨号页面,此时已经输入好了号码

拨号
上一篇 下一篇

猜你喜欢

热点阅读