iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0

接下來介紹之後會用到的Toast~
Toast主要是在畫面上顯示一些資訊或提醒,例如使用者輸入密碼錯誤時顯示密碼錯誤,使靜態方法 makeText 方法可以浮動顯示文字。
大致了解之後我們先知道它的規格長甚麼樣?


Toast規格

Toast.makeText(context, text, duration).show();
  1. 第一個參數為 Context,目前類別 MainActivity 即是一個 Context 物件,可使用「this」關鍵字代表本類別(白話一點就是帶入頁面的Activity)
  2. 想要顯示的字串值(彈出的訊息)
  3. 浮動式訊息應顯示在螢幕上的時間長度,有Toast.Length_SHORT跟LONG可選擇
  4. 最後還需要寫.show,將設定好的Toast給顯示出來

使用大概會像這樣

Toast.makeText(this, "Hello!", Toast.LENGTH_LONG).show();

Toast實作

接著我們試著實做出來,這邊用的是上一篇 轉換Activity - Intent Day10 範例做使用,想做出一樣的可以參考上一篇喔~

我想要使用者再輸入時,不能輸入空白,若輸入跳出訊息提醒

  • MainActivity
    我需要先宣告Context
    https://ithelp.ithome.com.tw/upload/images/20240920/20168454UvVsBM9Dvp.png

並且去判斷我輸入是否為空白,是的話就顯示 輸入不為空白 短暫時間。
使用簡單的if判斷式就好了。
https://ithelp.ithome.com.tw/upload/images/20240920/20168454H54z0tmqjk.png

這樣就完成了~ 在我未輸入任何文字與數字時,就會顯示 輸入不為空白 的提醒,反之會繼續動作。
https://ithelp.ithome.com.tw/upload/images/20240920/20168454z8vv2HtMoJ.png

package com.example.ittext;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

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 {
    //宣告
    private Button myButton;
    private EditText nameEditText;
    private Context context = this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        //綁定
        myButton = findViewById(R.id.main_touch_btn);
        nameEditText = findViewById(R.id.main_name_et);

        //點擊事件(監聽器)
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = nameEditText.getText().toString();

                //空白執行
                if(nameEditText.getText()==null || nameEditText.getText().toString().isEmpty()){
                    Toast.makeText(context,"輸入不為空白",Toast.LENGTH_SHORT).show();
                    return;
                }

                Intent intent = new Intent(MainActivity.this, SettingActivity.class);
                //指定名稱字串,可用標籤取得資料
                intent.putExtra("NAME",name);//將bmi放進Intent
                startActivity(intent);//將intent 發送到Android,判別後顯示到SA畫面中
            }
        });

    }
}

題外話

簡單提一下,除了Toast外還有一個是Log,Log 基本是用來除錯,且Log的訊息需要到Logcat才看的到。

黃色圍程式碼,d是指Debug,msg是填入想要讓系統彈出的訊息。
紅色為它跳出的訊息。
https://ithelp.ithome.com.tw/upload/images/20240920/20168454Mkth4O8tkT.png


上一篇
轉換Activity - Intent Day11
下一篇
MVP架構 Day13
系列文
Android 元件總動員 - 運用與實踐元件指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言