iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0

今天介紹如何用intent的方式來實現跳轉至下一個頁面。以下將使用之前的activity_constraint_layout.xml來實作。

activity_constraint_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".constraint_layout">


    <EditText
        android:id="@+id/editText"
        android:layout_width="173dp"
        android:layout_height="38dp"
        android:layout_gravity="center"
        android:background="@drawable/edittext_inputstyle"
        android:hint=" Account"
        android:inputType="text"
        android:singleLine="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.445"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.292" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="173dp"
        android:layout_height="38dp"
        android:layout_gravity="center"
        android:background="@drawable/edittext_inputstyle"
        android:hint=" Password"
        android:inputType="numberPassword"
        android:singleLine="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.445"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.442" />

    <Button
        android:id="@+id/button"
        android:layout_width="145dp"
        android:layout_height="58dp"
        android:background="@drawable/button_round"
        android:text="Log in"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.06"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.644" />

    <Button
        android:id="@+id/button2"
        android:layout_width="145dp"
        android:layout_height="58dp"
        android:background="@drawable/edittext_inputstyle"

        android:text="Clear"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.894"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.644" />
        
</androidx.constraintlayout.widget.ConstraintLayout>

呈現畫面為:

我們以這個畫面設定Log in按鈕點下去要進入到另一個畫面。首先需要找對應的java檔,也就是constraint_layout.java這個檔。

constraint_layout.java

package com.example.test01;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class constraint_layout extends AppCompatActivity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_constraint_layout);

        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setClass(constraint_layout.this,MainActivity.class);
                startActivity(intent);
            }
        });
    }
}

先宣告一個私有變數是Button型態我們取名為button

 private Button button;

在下方新增按鈕監聽事件

        button = (Button) findViewById(R.id.button); //此處的button需要對照xml檔這個按鈕的id名稱
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setClass(constraint_layout.this,MainActivity.class);
                //constraint_layout為本檔案的名稱,後面是需要跳轉的頁面java檔名稱MainActivity
                startActivity(intent);
                //執行按鈕跳轉
            }
        });

而在這邊我們可以使用toast來顯示登入成功或失敗。
在startActivity(intent);下面加上這行

Toast.makeText(constraint_layout.this,"登入成功", Toast.LENGTH_SHORT).show();

即可顯示登入成功的訊息啦!

補充說明: 如果出現紅字可按ALT+ENTER來試著解決。


今天介紹到這邊,我們明天見。


上一篇
[Day28] Java基礎教學
下一篇
[Day30]參賽心得
系列文
新手學 Swift UI 與 Android Studio 的學習路程 -- 跟著我們一起踏上 App 開發之旅吧~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言