一、传统 View (XML) 页面 3 个核心步骤
- 创建布局 xml在
res/layout新建页面布局文件,写 UI 控件。 - 创建 Activity 类新建 Kotlin/Java Activity,
setContentView绑定上面的布局。 - AndroidManifest.xml 注册页面在清单文件中添加
<activity>标签,系统才能识别该页面;首页需要加intent-filter。
举例:
第一步:布局 res/layout/activity_main.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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Java 第一个页面"/> </LinearLayout>第二步:MainActivity.java(Java 代码)
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 绑定布局(核心代码) setContentView(R.layout.activity_main); } }第三步:AndroidManifest.xml 注册
<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之间的跳转
页面1:activity_main.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"> <!-- 跳转按钮 --> <Button android:id="@+id/btn_jump" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳转到第二个页面"/> </LinearLayout>MainActivity.java(页面1,点击跳转)
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 绑定布局 setContentView(R.layout.activity_main); // 获取按钮控件 Button btnJump = findViewById(R.id.btn_jump); // 设置点击事件 btnJump.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 创建意图,指定从当前页跳转到Activity2 Intent intent = new Intent(MainActivity.this, Activity2.class); // 执行页面跳转 startActivity(intent); } }); } }页面2布局:activity_second.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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是第二个页面"/> </LinearLayout>Activity2.java(第二个页面)
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class Activity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 绑定第二个页面布局 setContentView(R.layout.activity_second); } }AndroidManifest.xml 注册两个Activity
<!-- 首页Activity --> <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=".Activity2" android:exported="false"/>核心知识点
Intent:安卓页面跳转、组件通信的载体startIntent():启动新页面- 所有Activity必须在Manifest注册,否则无法跳转