用kotlin 开发一个简单的多页面跳转

本文介绍一个简单的安卓应用的页面跳转例子,用的是kotlin。

运行时主页面是一个hello 和Jump 按钮,你按一下jump 按钮就转到 从页面,只是标识从页面。

开始建立一个简单工程,名为hello, 选择的是Empty views Activity,然后修改下面5个文件。

那个package 这一行不要改,是你建立工程时定义的。就是kotlin 的第一行定义你的包,要与你建立工程的一致。

一个页面都包括页面和kotlin 代码文件。

主页面是一个Textview 和Button。前者表示主页面,后者就是一个跳转按钮。

代码也就是处理跳转。

先上主页面的页面文件,activity_main.xml

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">
      <TextView
          android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Leon1!"
        />
      <Button
            android:id="@+id/button"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
            android:text="Jump">

      </Button>
</LinearLayout>

然后是主页面的kotlin代码文件; MainActivity.kt

Kotlin 复制代码
package com.liwensoft.hello

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val copy: Button = findViewById(R.id.button)
        copy.setOnClickListener {
            OnClick()
        }
        Log.i("CAMERAACTIVITY", "ACTIVITY1 onCreate")
    }

    private fun OnClick() {
        Log.i("button","click")
        val intent = Intent(this, MainActivity2::class.java)
        startActivity(intent)
        Log.i("button","button finish click")

    }
}

第2页面就很简单,只是显示页面标识

页面文件 activity_main2.xml

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Main Activity2!"
        />

</LinearLayout>

代码文件 MainActivity2.kt:

Kotlin 复制代码
package com.liwensoft.hello

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log

class MainActivity2: AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Log.i("2ACTIVITY", "activity 2 onCreate")
        setContentView(R.layout.activity_main2)

    }
}

还有一个地方要修改,那就是AndroidManifest.xml

主要的是注册MainActivity2.xml 我开始没有注册,结果总是跳转不了。

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        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.Hello"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>
    </application>

</manifest>

应该只是修改上面5个文件。关键点是主页面的跳转按钮事件,内容就一点点:

XML 复制代码
val intent = Intent(this, MainActivity2::class.java)
        startActivity(intent)

然后就是要注册MainActivity2

列出5个文件只是你走迷宫了。当然跳转还可以带参数,返回也可以返回参数,这里就没有做,为了简单。跳转后你再查看下。

相关推荐
小草帽学编程7 分钟前
鸿蒙Next开发真机调试签名申请流程
android·华为·harmonyos
じ☆ve 清风°1 小时前
JavaScript 原型与原型链:深入理解 __proto__ 和 prototype 的由来与关系
开发语言·javascript·原型模式
dog shit2 小时前
web第十次课后作业--Mybatis的增删改查
android·前端·mybatis
科技道人3 小时前
Android15 launcher3
android·launcher3·android15·hotseat
_r0bin_6 小时前
前端面试准备-7
开发语言·前端·javascript·fetch·跨域·class
zhang98800006 小时前
JavaScript 核心原理深度解析-不停留于表面的VUE等的使用!
开发语言·javascript·vue.js
Fanxt_Ja7 小时前
【JVM】三色标记法原理
java·开发语言·jvm·算法
蓝婷儿7 小时前
6个月Python学习计划 Day 15 - 函数式编程、高阶函数、生成器/迭代器
开发语言·python·学习
CYRUS_STUDIO7 小时前
FART 脱壳某大厂 App + CodeItem 修复 dex + 反编译还原源码
android·安全·逆向
love530love8 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust