跟web前端不同,Android前端没有跳转页面这一说,而是叫做 激活当前视窗。

一、修改默认主页面代码

activity_main.xml 布局如下

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity">
  8. <!--内容布局 -->
  9. <TextView
  10. android:id="@+id/txt"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:layout_centerHorizontal="true"
  14. android:layout_centerVertical="true"
  15. android:text="我是主页"/>
  16. <Button
  17. android:id="@+id/btn_click"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:onClick="buttonClick"
  21. android:text="前往详情页"
  22. app:layout_constraintTop_toBottomOf="@+id/txt"/>
  23. </androidx.constraintlayout.widget.ConstraintLayout>

对应MainActivity.java代码,添加一个按钮点击跳转的事件

  1. package com.dshvv.myapplication;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. public class MainActivity extends AppCompatActivity {
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11. }
  12. /*
  13. * 按钮点击事件
  14. */
  15. public void buttonClick(View view) {
  16. // 激活详情页视窗
  17. Intent intent = new Intent(this, DemoDetail.class);
  18. startActivity(intent);
  19. // setContentView(R.layout.demo_detail); 这个跳转只执行页面xml,java还是老的
  20. }
  21. }

二、增加一个新页面

demo_detail.xml 代码如下

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".DemoDetail">
  8. <!--内容布局 -->
  9. <TextView
  10. android:id="@+id/txt"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:layout_centerHorizontal="true"
  14. android:layout_centerVertical="true"
  15. android:text="我是详情页"/>
  16. <Button
  17. android:id="@+id/btn_click"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:onClick="buttonClick"
  21. android:text="返回主页"
  22. app:layout_constraintTop_toBottomOf="@+id/txt"/>
  23. </androidx.constraintlayout.widget.ConstraintLayout>

DemoDetail.java代码如下

  1. package com.dshvv.myapplication;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. public class DemoDetail extends AppCompatActivity{
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.demo_detail);
  11. }
  12. /*
  13. * 按钮点击事件
  14. */
  15. public void buttonClick(View view) {
  16. // 激活主页视窗
  17. Intent intent = new Intent(this, MainActivity.class);
  18. startActivity(intent);
  19. // 出入动画
  20. overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
  21. // overridePendingTransition(0, 0); // 或者去除默认动画
  22. }
  23. }

三、将新页面注册到项目

  1. ...
  2. <!-- 注册详情页-->
  3. <activity android:name=".DemoDetail" />
  4. </application>
  5. </manifest>

最终效果如下
1.gif