目录

3.3        使用 Intent 在 Activity 之间穿梭

3.3.1        使用显式 Intent

3.3.2        使用隐式 Intent

3.3.3        更多隐式 Intent 的用法

 3.3.4        向下一个 Activity 传递数据

3.3.5        返回数据给上一个 Activity 

3.3        使用 Intent 在 Activity 之间穿梭

        只有一个 Activity 的应用也太简单了吧?没错,你的追求应该更高一点。不管你想创建多少个 Activity ,方法都和上一节中介绍的是一样的。唯一的问题在于,你在启动器中点击应用的图标只会进入该应用的主Activity ,那么怎样才能由主 Activity 跳转到其他 Activity 呢?我们现在就 一起来看一看。

3.3.1        使用显式 Intent

        你应该已经对创建 Activity 的流程比较熟悉了,那我们现在在 ActivityTest 项目中再快速地创 一个 Activity 。

        还是右击 com.example.activitytest 包→New→Activity→Empty Activity ,会弹出一个创建 Activity 的对话框,这次我们命名为 SecondActivity ,并勾选 Generate Layout File ,给布局 文件起名为 second_layout ,但不要勾选 Launcher Activity 选项,如 图3.15 所示。

图3.15        创建 SecondActivity

        点击“Finish” 完成创建,Android Studio 会为我们自动生成 SecondActivity.kt 和 second_layout.xml 这两个文件。不过自动生成的布局代码目前对你来说可能有些难以理解, 这里我们还是使用比较熟悉的 LinearLayout ,编辑 second_layout.xml ,将里面的代码替换成如下内容:

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".SecondActivity">

android:id="@+id/button2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Button 2"/>

        我们还是定义了一个按钮,并在按钮上显示Button 2 。

        SecondActivity 中的代码已经自动生成了一部分,我们保持默认不变即可,如下所示:

class SecondActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.second_layout)

}

}

        另外不要忘记,任何一个 Activity 都是需要在 AndroidManifest.xml 中注册的。不过幸运的 是,Android Studio 已经帮我们自动完成了,你可以打开 AndroidManifest.xml 瞧一瞧:

android:allowBackup="true"

android:dataExtractionRules="@xml/data_extraction_rules"

android:fullBackupContent="@xml/backup_rules"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/Theme.ActivityTest"

tools:targetApi="31">

android:name=".SecondActivity"

android:exported="false" />

android:name=".FirstActivity"

android:exported="true"

android:label="This is FirstActivity">

        由于 SecondActivity 不是主 Activity ,因此不需要配置标签里的内容,注册 Activity 的代码也简单了许多。现在第二个 Activity 已经创建完成,剩下的问题就是如何去启动它了,这里我们需要引入一个新的概念:Intent 。

        Inte

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: