Android

토스트, 다이얼로그, 스낵바 - id만 참조

Raccoon2125 2020. 10. 28. 18:01

※ 참고 webnautes.tistory.com/1224

 

Android Snackbar vs Toast 예제

간단한 메시지를 보여주기 위해 사용되는 Snackbar와 Toast의 동작을 비교해보는 예제 코드입니다.   Toast는 지정한 일정시간이 지나야 화면에서 사라지지만  Snackbar의 경우에는 사용자의 입력에

webnautes.tistory.com

package com.example.myalarm;

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

import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import com.google.android.material.snackbar.Snackbar;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setButton();
    }

    private void setButton() {
        findViewById(R.id.btnToast).setOnClickListener(this);
        findViewById(R.id.btnSnackBar).setOnClickListener(this);
        findViewById(R.id.btnSnackBar2).setOnClickListener(this);
        findViewById(R.id.btnDialog).setOnClickListener(this);
        findViewById(R.id.btnDialog2).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btnToast) {
            Toast.makeText(getBaseContext(), "TOAST!!!", Toast.LENGTH_SHORT).show();

        } else if (v.getId() == R.id.btnSnackBar) {
            Snackbar.make(v, "Snackbar!!!", Snackbar.LENGTH_SHORT).show();

        } else if (v.getId() == R.id.btnSnackBar2) {
            Snackbar.make(v, "Snackbar!!!", Snackbar.LENGTH_INDEFINITE)
                    .setAction("닫기", new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {

                        }
                    }).setActionTextColor(Color.RED).show();

        } else if (v.getId() == R.id.btnDialog) {
            new AlertDialog.Builder(this)
                    .setIcon(R.mipmap.ic_launcher)
                    .setTitle("Dialog")
                    .setMessage("메시지를 보여줍니다!!")
                    .setNeutralButton("닫기", null)
                    .setPositiveButton("네", null)
                    .setNegativeButton("아니오", null)
                    .show();

        } else if (v.getId() == R.id.btnDialog2) {
            new AlertDialog.Builder(this)
                    .setIcon(R.mipmap.ic_launcher)
                    .setTitle("Dialog")
                    .setMessage("메시지를 보여줍니다!!")
                    .setNeutralButton("닫기", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Toast.makeText(getApplicationContext(),"다이얼로그를 닫습니다.",Toast.LENGTH_SHORT).show();
                        }
                    })
                    .show();
        }
    }
}


/*
package com.example.myalarm;

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

import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import com.google.android.material.snackbar.Snackbar;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

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

        final int ids[] = {R.id.btnToast, R.id.btnSnackBar, R.id.btnSnackBar2,
                R.id.btnDialog, R.id.btnDialog2};
        for(int i = 0; i != ids.length; i++)
            findViewById(ids[i]).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.btnToast:
                Toast.makeText(getApplicationContext(), "TOAST1", Toast.LENGTH_LONG).show();
                break;
            case R.id.btnSnackBar:
                Snackbar.make(v, "Snackbar1", Snackbar.LENGTH_SHORT).show();
                break;
            case R.id.btnSnackBar2:
                Snackbar.make(v, "Snackbar2", Snackbar.LENGTH_INDEFINITE)
                        .setAction("닫기", new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {

                            }
                        }).setActionTextColor(Color.RED).show();
                break;
            case R.id.btnDialog:
                new AlertDialog.Builder(this)
                        .setIcon(R.mipmap.ic_launcher)
                        .setTitle("Dialog1")
                        .setMessage("Dialog1_2")
                        .setNeutralButton("닫기", null)
                        .setPositiveButton("네", null)
                        .setNeutralButton("아니오", null)
                        .show();
                break;
            case R.id.btnDialog2:
                new AlertDialog.Builder(this)
                        .setIcon(R.mipmap.ic_launcher_round)
                        .setTitle("Dialog2_round")
                        .setMessage("Dialog2_round2")
                        .setNeutralButton("닫기", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(getApplicationContext(), "다이얼로그를 닫습니다.", Toast.LENGTH_SHORT).show();
                            }
                        })
                        .show();
                break;
        }
    }
}

*/
<?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:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnToast"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="토스트(TOAST)" />

    <Button
        android:id="@+id/btnSnackBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="스낵바(SNACK BAR)" />

    <Button
        android:id="@+id/btnSnackBar2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="스낵바(클릭)" />

    <Button
        android:id="@+id/btnDialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="다이얼로그(DIALOG)" />

    <Button
        android:id="@+id/btnDialog2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="다이얼로그(클릭)" />
</LinearLayout>