iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0

前言
如果大家想在Android Studio中想要顯示對話框,有兩個常用的方式:使用 Toast 和 AlertDialog,功能如下。

  1. Toast(吐司):Toast 用於顯示短暫的通知訊息,通常會彈出在畫面的上方或下方。
// 在一個 Activity 中顯示短暫的 Toast 通知
Toast.makeText(getApplicationContext(), "這是一個 Toast 訊息", Toast.LENGTH_SHORT).show();
  • 在 makeText() 方法中,第一個參數是 Context,第二個參數是要顯示的文字內容,第三個參數是 Toast 的持續時間(Toast.LENGTH_SHORT 表示短暫,Toast.LENGTH_LONG 表示稍長)。
  1. AlertDialog(警示對話框):
    AlertDialog 用於顯示帶有按鈕選項的對話框,可以用來取得使用者確認、警示訊息等。
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("警示標題")
       .setMessage("這是一個警示訊息")
       .setPositiveButton("確認", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialogInterface, int i) {
               // 使用者點擊確認按鈕後執行的操作
           }
       })
       .setNegativeButton("取消", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialogInterface, int i) {
               // 使用者點擊取消按鈕後執行的操作
           }
       })
       .show();

在這個範例中,您可以根據需要自訂標題、訊息以及按鈕的文字,並且設置按鈕點擊後的回調操作。

無論是 Toast 還是 AlertDialog,都可以根據您的應用場景和需求進行定製和設定。這些簡單的 UI 元素可以在您的應用中有效地與使用者進行互動和通知。


activity_main.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=".MainActivity">

    <LinearLayout
        android:layout_width="406dp"
        android:layout_height="280dp"
        android:layout_marginTop="200dp"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.4"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/textView5"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="20dp"
            android:textColor="@color/black"
            android:text="內容資料:" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:background="@color/black"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView3"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:gravity="center"
                android:text="輸入文字:"
                android:textColor="@color/black"
                android:textSize="24sp" />

            <EditText
                android:id="@+id/editTextText"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="7"
                android:ems="10"
                android:inputType="text" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2"
            android:orientation="horizontal">

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="更新" />

            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="刪除" />
        </LinearLayout>

    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Java (程式碼)code

package com.example.myapplicationtosat;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    //宣告變數
    private Button updated_button;
    private Button delete_button;
    private TextView context_textView;
    private EditText editText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ById();//綁定元件
        Updated_Button();//更新資料上傳到我們的內容版裡
        Delete_Button();//刪除內容版所有資料

    }
    //綁定元件
    public void ById(){
        updated_button = findViewById(R.id.button2);
        delete_button = findViewById(R.id.button3);
        context_textView = findViewById(R.id.textView);
        editText = findViewById(R.id.editTextText);
    }
    //更新資料上傳到我們的內容版裡
    public void Updated_Button(){
        updated_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String context_str = String.valueOf(editText.getText());
                //當文子為空時會調出對話框
                if(context_str.length() == 0){
                    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("警示標題")
                            .setMessage("輸入的內容不得為空")
                            .setPositiveButton("確認", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    // 在一個 Activity 中顯示短暫的 Toast 通知
                                    Toast.makeText(getApplicationContext(), "你點擊了確認", Toast.LENGTH_SHORT).show();
                                    // 使用者點擊確認按鈕後執行的操作
                                }
                            })
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    Toast.makeText(getApplicationContext(), "你點擊了取消", Toast.LENGTH_SHORT).show();
                                    // 使用者點擊取消按鈕後執行的操作
                                }
                            })
                            .show();
                }
                context_textView.setText(context_str);
                Toast.makeText(getApplicationContext(), "更新成功", Toast.LENGTH_SHORT).show();
            }
        });
    }
    //刪除內容版所有資料
    public void Delete_Button(){
        delete_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                context_textView.setText("");
                Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

--結言--
小弟我這次介紹就到這邊下次會再介紹其他常見的元件或方法給大家


上一篇
Day8 - EditText + TextView使用介紹
下一篇
Day10 - 製作一個簡單身高和體重BMI的計算器
系列文
Android studio使用過程與開發說明30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言