Android—————Intent 怼烎@ 2023-08-17 17:35 121阅读 0赞 ##### 一、什么是Intent ##### > Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 > Intent传递给被调用的组件,并完成组件的调用。 > 因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 > 例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity) > 为了实现这个目的,listActivity需要构造一个 > Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity > (Intent > intent),将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的 > Activity,即为detailActivity,最终传入Intent,detailActivity则会根据此Intent中的描述,执行相应的操作。————百度百科 个人认为Intent 起到了中介作用。 ##### 二、Intent的属性 ##### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzODI0Nzkx_size_16_color_FFFFFF_t_70] ##### 三 ##### ###### 1、ComponentName属性 ###### componentName 中文就是组件名称的意思, 通过它可以设置一个组件,然后通过Intent 对象实现, 在一个activity中启动其他组件 如下启动一个activity代码: package com.example.wechat_fragmet; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.media.Image; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; /***** * 通过intent ComponentName 启动一个activity */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button;//定义 一个button对象 button = findViewById(R.id.button1);// 指定该对象 button.setOnClickListener(new View.OnClickListener() { // 给 button设置一个监听器 @Override public void onClick(View v) { // 重写点击方法 Intent intent = new Intent();//实例化一个Intent对象 ComponentName componentName;// 定义一个 Component对象 componentName = new ComponentName("com.example.wechat_fragmet", "com.example.wechat_fragmet.activity2");//通过构造函数, 创建初始化该对象, ComponentName(包名, 包名.类名); intent.setComponent(componentName);//给intent 设置 component startActivity(intent);// 启动该活动 参数是Intent对象 } }); } } [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzODI0Nzkx_size_16_color_FFFFFF_t_70]: /images/20230808/87b2e82a9e4742e4a596bbab6d07b98a.png
还没有评论,来说两句吧...