安卓学习 之 界面切换
今天早晨到现在主要学习的是界面切换。但是效果不太好,也不知道问题出在哪里?不过也需要记录一下,继续学习,后面会了,回来在改吧!问题就是界面有3个,切换到第3个后再回到第一个时就终止了,程序意外崩溃!下图就是整个过程的截图:
今天学习到的切换界面的语句有两条:
第一是创建一个意向:第一个参数:当前所在的Activity,第二个参数:要切换到的Activity
Intent intent = new Intent(test_Activity.this, shuiguo_Activity.class);
第二个是开始一个意向: 参数是:刚刚创建的意向
startActivity(intent);
经过这两句就切换了一个界面。下面来看看代码吧,实际使用这个意向时,发现这两条语句只能使用一次,第二次在用就不好用了,第二次跳转界面我用的是
setContentView(R.layout.shuiguo_layout);我直接把第三个界面给启用了,估计这也是我的程序会崩溃的原因,但是我现在的知识量解决不了这个问题,所以把问题先记下吧,回头能解决了,在回来补充解决方案,下面看代码吧:
第一个界面的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"android:gravity="center_horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我是一个美女"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><ImageViewandroid:id="@+id/imageView2"android:layout_width="match_parent"android:layout_height="wrap_content"android:src="@mipmap/meinv1" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="下一个界面"android:layout_margin="30dp"android:onClick="laohu"/></LinearLayout>
第一个界面的Activity文件:
package com.example.myapplication2;import android.content.Intent;
import android.os.Bundle;
import android.view.View;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_main);ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);return insets;});}public void laohu(View V){Intent intent = new Intent(MainActivity.this, test_Activity.class);startActivity(intent);}}
第二个界面的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我是一只老虎" /><ImageViewandroid:id="@+id/imageView"android:layout_width="match_parent"android:layout_height="517dp"android:src="@mipmap/laohu" /><Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="下一个界面"android:onClick="shuiguo"/>
</LinearLayout>
第二个界面的Activity文件:
package com.example.myapplication2;import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.view.View;
import android.widget.Button;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;public class test_Activity extends AppCompatActivity {@Overridepublic void onCreate(@Nullable Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.test_layout);}public void shuiguo(View V){//Intent intent = new Intent(test_Activity.this, shuiguo_Activity.class);// startActivity(intent);setContentView(R.layout.shuiguo_layout);}}
第三个界面的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我是一个水果"android:layout_gravity="center_horizontal"/><ImageViewandroid:id="@+id/imageView3"android:layout_width="match_parent"android:layout_height="569dp"android:src= "@mipmap/shuiguo" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="下一个界面"android:onClick="zhujiemian"/>
</LinearLayout>
第三个界面的Activity文件:
package com.example.myapplication2;import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.view.View;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;public class shuiguo_Activity extends AppCompatActivity {@Overridepublic void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {super.onCreate(savedInstanceState, persistentState);setContentView(R.layout.shuiguo_layout);}public void zhujiemian(View V){Intent intent = new Intent(shuiguo_Activity.this, MainActivity.class);startActivity(intent);}
}