Android开发学习笔记之--使用intent

  1. 简介:要在各个活动中穿梭,即由主活动跳转到其他活动则需要使用intent
  2. 使用显示的 Intent:
    (1)创建一个活动 SecondActivity (com.example.activity->new->activity->emptyActivity)并勾选Generate Layout File(自动创建一个·布局文件)并命名为second_layout。自动创建的文件,目前看不懂,使用LinearLayout替换,定义了一个button
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="button 2" />
</LinearLayout>

(2)任何一个活动都是要在AndroidManifest.xml中注册的,但是它已经帮我们注册好了

        <activity android:name=".SecondActivity">
        </activity>

(3)使用显示Intent
Intent有多个构造函数的重载,其中一个是Inrtent(Context packageContex, <?>cls)其中第一个参数要求提供启动活动的上下文,第二个参数class则是则是要启动的目标活动.然后我们使用Activitty类中的startActivity()方法启动活动,它接受一个Intent 参数

 button1.setOnClickListener(new View.OnClickListener() {     //建立监听器
            @Override
            public void onClick(View v) {
            	Intent intent = new Intent(FristActivity.this,SecondActivity.class);
            	startActivity(intent);
            }
     });

效果接受按下button_1之后跳转到SecondActivity活动。

  1. 使用隐式 Intent 不明确我们指出使用哪个活动,而是由系统分析这个Intent 并帮我们找到合适的活动
    (1) 在标签下配置<intent_filter>,表示当前活动可以响应com.example.activitytest.ACTION_START这个action,标签中包含一些附加信息
<activity android:name=".SecondActivity">
            <intent-filter>
                <action android:name="com.example.activitytest.ACTION_START" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.example.activitytest.MY_category" />
            </intent-filter>
        </activity>

(2)修改FristActivity 中的按钮点击事件:

 button1.setOnClickListener(new View.OnClickListener() {     //建立监听器
            @Override
            public void onClick(View v) {
            	Intent intent = new Intent(com.example.activitytest.ACTION_START);
            	startActivity(intent);
            }
     });
  1. 更多隐式 Intent 的用法:我们不仅可以打开自己创建的活动,还可以启动其他应用程序
    (1)
 button1.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);
            }
     });

6.传递数据
(1)向下传递数据
FristActivity:

button1.setOnClickListener(new View.OnClickListener() {     //建立监听器
            @Override
            public void onClick(View v) {
                //makeText 有3个参数,最后调用show()
               String date = "hello word";
               Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
               intent.putExtra("extra_date",date);
               startActivity(intent);
              }
        });

Intent 中提供了putExtra()方法可以把想要的数据暂时存放在Intent中,在SecondActivity中使用getIntent()方法获取到用于启动SecondActivity中的Intent,使用getStringExtra()方法传入相关键值,然后打印出日志
SecondActivity:

protected void onCreate(Bundle savedInstanceState) {
        String TAG = "SecondActivity";
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
        Intent intent = getIntent();
        String data = intent.getStringExtra("extra_date");
        Log.d("TAG", data);
    }

(2)向上传递数据

发布了40 篇原创文章 · 获赞 9 · 访问量 3299

猜你喜欢

转载自blog.csdn.net/weixin_44706647/article/details/100151989