Android学习(使用Intent在活动之间切换)

在AndroidManifest.xml文件里,`

<activity android:name=".BaseInfomation">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

android.intent.action.MAIN代表这个活动为主活动。下面添加一个新的活动。

添加新活动

在android studio中点击在这里插入图片描述变成在这里插入图片描述。(在project目录下更接近项目的真实存储环境,而Android是经过IDE转换过的。)依次点击app—>src–>main–>java找到自己存储的包名,在包文件夹右键–>new–>activity,选择合适的模板就能新建一个activity了

通过Intent实现活动之间的转换

Intent有两种使用方法,分别是显示的和隐式的。
首先,如果要在一个活动中打开另一个活动,需要事件来触发,例如在第一个活动中新建一个button,通过button(按钮)的click(点击)事件来转到第二个活动中。button事件的注册可以参见如何使用Button控件
显示使用Intent:在第一个activity中的button事件中添加如下代码:

Intent intent = new Intent(第一个活动的名字.this,第二个活动的名字.class);
context.startActivity(intent);

现在来分析这段代码:
Intent有多个构造函数的重载,我们使用的就是Intent(Context packageContext,Class<?>cls)。第一个参数Context是上下文活动,一般是当前要调用这个函数的类或函数;第二个参数Class是要启动的目标活动。我们new出一个Intent的对象后要使用Activity类中提供的startActivity()方法来启动,参数就是intent.
隐式使用Intent

现在找到AndroidManifest.xml文件(所有的活动都要在这个文件中注册),app–>src–>main–>AndroidManifest.xml 添加下面代码

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

其中指明了响应哪个活动,则精确指明了活动能响应的intent可能带有category。只有action和category同时匹配上,才会被响应.
然后再在触发事件中添加:

Intent intent = new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);

现在已经能响应了,并且效果和显示声明是一样的。

猜你喜欢

转载自blog.csdn.net/qq_42893430/article/details/88750943