Android基础知识回顾——Intent的使用

本文详细介绍了Android中的Intent概念及其使用方法,包括显式Intent与隐式Intent的区别和应用场景,并通过示例代码展示了如何在实际项目中使用Intent来启动不同的活动。

Intent是Android程序中各组件之间进行交互的重要方式,除了能指明当前组件想要执行的动作,还能在不同组件之间传递数据。Intent一般被用于启动活动,启动服务及发送广播。Intent大致可以分为显式Intent和隐式Intent

显式Intent

  • Intent有多个构造函数的重载,其中一个是Intent(Context packageContext,Class<?> cls)。这个构造函数接收的两个参数,第一个是启动活动的上下文,第二个参数是指定启动的目标。要使用这个Intent,我们要用到startActivity()方法,它接收一个Intent参数,我们只要将创建好的Intent传入就行了
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });
    }
}
  • 这里添加了一个Button按钮并创建了它的点击事件,当点击这个按钮时,便会跳转到SecondActivity活动中

隐式Intent

  • 隐式Intent与显式Intent不同,它并不会明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息。打开AndroidManifest.xml,添加如下代码:
        <activity android:name=".SecondActivity">
            <intent-filter>
                <action android:name="android.intent.action.Second" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
  • 然后修改Button的点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent("android.intent.action.Second");
                startActivity(intent);
            }
        });
  • 只有<action><category>能够同时匹配到Intent中指定的action和categroy时,这个活动才响应Intent。android.intent.category.DEFAULT是默认的categroy,调用startActivity()方法时会自动添加进去
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值