๊ด€๋ฆฌ ๋ฉ”๋‰ด

Welcome! Everything is fine.

[Android] ํ† ์ŠคํŠธ, ์Šค๋‚ต๋ฐ”, ์•Œ๋ฆผ ๋Œ€ํ™”์ƒ์ž ๋ณธ๋ฌธ

Android

[Android] ํ† ์ŠคํŠธ, ์Šค๋‚ต๋ฐ”, ์•Œ๋ฆผ ๋Œ€ํ™”์ƒ์ž

๊ฐœ๋ฐœ๊ณฐ๋ฐœ 2022. 3. 6.
728x90

๐Ÿ“Œํ† ์ŠคํŠธ(Toast)

ํ† ์ŠคํŠธ๋ž€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ž ๊น ๋ณด์—ฌ์คฌ๋‹ค๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๋ทฐ๋กœ, ๋””๋ฒ„๊น… ๋ฉ”์„ธ์ง€๋ฅผ ํ™•์ธํ•ด๋ณด๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ„๋‹จํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šธ ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.

ํ† ์ŠคํŠธ ๋ฉ”์„ธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Toast.makeText(Context context, String message, int duration).show();

 

โœ” ํ† ์ŠคํŠธ ๋ทฐ ์œ„์น˜ ์ง€์ • ๋ฉ”์„œ๋“œ

public void setGravity(int gravity, int xOffset, int yOffset)

โœ” ํ† ์ŠคํŠธ ๋ทฐ์˜ ์™ธ๋ถ€ ์—ฌ๋ฐฑ ์ง€์ • ๋ฉ”์„œ๋“œ

public void setMargin(float horizontalMargin, float verticalMargin)
public class MainActivity extends AppCompatActivity {

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

    public void onButton1Clicked(View v) {
        LayoutInflater inflater = getLayoutInflater();

        View layout = inflater.inflate(R.layout.toastborder,
               (ViewGroup) findViewById(R.id.toast_layout_root));

        TextView text = layout.findViewById(R.id.text);

        Toast toast = new Toast(this);
        text.setText("๋ชจ์–‘ ๋ฐ”๊พผ ํ† ์ŠคํŠธ");
        toast.setGravity(Gravity.CENTER, 0, -100);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(layout);
        toast.show();
    }
}

๐Ÿ“Œ์Šค๋‚ต๋ฐ”(Snackbar)

์Šค๋‚ต๋ฐ” ์—ญ์‹œ ๊ฐ„๋‹จํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šธ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฒ„ํŠผ์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด MainActivity.java์— OnButton2Clicked ๋ฉ”์„œ๋“œ๋ฅผ ๋„ฃ๊ณ  ์—ฐ๊ฒฐํ–ˆ๋‹ค.

public void onButton2Clicked(View v) {
        Snackbar.make(v,"์Šค๋‚ต๋ฐ”์ž…๋‹ˆ๋‹ค.", Snackbar.LENGTH_LONG).show();
    }

์‹คํ–‰ํ•ด๋ณด๋ฉด ํ™”๋ฉด ์•„๋ž˜์ชฝ์—์„œ ์˜ฌ๋ผ์˜ค๋Š” ์Šค๋‚ต๋ฐ”๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ์•Œ๋ฆผ ๋Œ€ํ™”์ƒ์ž

์•Œ๋ฆผ ๋Œ€ํ™”์ƒ์ž๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ™•์ธ์„ ๋ฐ›๊ฑฐ๋‚˜ ์„ ํƒํ•˜๊ฒŒ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. AlertDialog ํด๋ž˜์Šค๋กœ ์‰ฝ๊ฒŒ ์•Œ๋ฆผ ๋Œ€ํ™”์ƒ์ž๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. setTitle, setMessage, setIcon ๋ฉ”์„œ๋“œ๋กœ ํƒ€์ดํ‹€, ๋‚ด์šฉ, ์•„์ด์ฝ˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ setPositiveButton๊ณผ setNegativeButton ๋ฉ”์„œ๋“œ๋กœ '์˜ˆ', '์•„๋‹ˆ์˜ค'์™€ ๊ฐ™์€ ๋ฒ„ํŠผ์˜ ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

public class MainActivity extends AppCompatActivity {
    TextView textView;

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

        textView = findViewById(R.id.textView);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showMessage();
            }
        });
    }

    private void showMessage() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("์•ˆ๋‚ด");
        builder.setMessage("์ข…๋ฃŒํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?");
        builder.setIcon(android.R.drawable.ic_dialog_alert);

        builder.setPositiveButton("์˜ˆ", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
               String message = "์˜ˆ ๋ฒ„ํŠผ์ด ๋ˆŒ๋ ธ์Šต๋‹ˆ๋‹ค.";
               textView.setText(message);
           }
        });

        builder.setNegativeButton("์•„๋‹ˆ์˜ค", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                String message = "์•„๋‹ˆ์˜ค ๋ฒ„ํŠผ์ด ๋ˆŒ๋ ธ์Šต๋‹ˆ๋‹ค.";
                textView.setText(message);
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }
}

์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋˜ํ•œ ์–ด๋Š ๋‹ต๋ณ€์„ ์„ ํƒํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ํ…์ŠคํŠธ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.