프로그래밍

안드로이드 스튜디오 대화상자

안드로이드 스튜디오
반응형

AlertDialog

 

<?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="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="결제를 원하면 눌러주세요"
        android:onClick="onclick"/>
</LinearLayout>
package com.example.alertdialog;

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

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

public class MainActivity extends AppCompatActivity {

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

    }

    public void onclick(View view) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setMessage("결제 하시겠습니까?");
        alertDialogBuilder.setPositiveButton("Y", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"결제를 완료했습니다.",Toast.LENGTH_SHORT).show();
            }
        });
        alertDialogBuilder.setNegativeButton("N", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"결제가 취소되었습니다.",Toast.LENGTH_SHORT).show();
            }
        });
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
}

 

 

DatePickerDialog TextClock

 

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

    <TextClock
        android:id="@+id/clock"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#5E00FF"
        android:gravity="center"
        android:format12Hour="hh:mm:ss a"
        android:textSize="40dp" />

    <Button
        android:id="@+id/selectdate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="날짜 설정"
        android:onClick="click"/>

    <Button
        android:id="@+id/selecttime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="시간 설정" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:layout_weight="1"
        android:text="TextView"
        android:textSize="30dp"/>


</LinearLayout>
package com.example.datepick;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextClock;
import android.widget.TextView;
import android.widget.TimePicker;

import java.sql.Time;
import java.time.Month;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
    Button selectdate,selecttime;
    TextClock textClock;
    TextView textView;

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

        selectdate = (Button)findViewById(R.id.selectdate);
        selecttime = (Button)findViewById(R.id.selecttime);
        textClock = findViewById(R.id.clock);
        textView = findViewById(R.id.textView);
    }

    public void click(View view) {
        if (view == selectdate){
            final Calendar c = Calendar.getInstance();
            int myear = c.get(Calendar.YEAR);
            int mmonth = c.get(Calendar.MONTH);
            int mday = c.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog datepick = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    selectdate.setText(year+" / "+(month+1)+" / "+ dayOfMonth);
                }
            },myear,mmonth,mday);
            datepick.show();
        }
        if (view == selecttime){
            final Calendar c = Calendar.getInstance();
            int mhour = c.get(Calendar.HOUR_OF_DAY);
            int mminute = c.get(Calendar.MINUTE);

            TimePickerDialog timepick = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    selecttime.setText(String.format("%02d:%02d",hourOfDay,minute));
                    textView.setText("클릭한 시간: "+textClock.getText());
                }
            },mhour,mminute,false);
            timepick.show();
        }
    }
}

Custom Dialog

레이아웃을 하나 만들어 줍니다

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:background="#fff"
    android:orientation="vertical">

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="username" >
    <requestFocus>
    </requestFocus>
    </EditText>

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="password"
        android:inputType="textPassword" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <Button
            android:id="@+id/login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="로그인" >
        </Button>
        <Button
            android:id="@+id/cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="취소" >
        </Button>
    </LinearLayout>


</LinearLayout>

-> 새로 만든 레이아웃

<?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="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onclick"
        android:text="login" />
</LinearLayout>
package com.example.customdialog;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button login,cancel;
    EditText username,password;

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

    public void onclick(View view) {
        final Dialog  logindialog = new Dialog(this);
        logindialog.setContentView(R.layout.custom_dialog);
        logindialog.setTitle("로그인 화면");

        login = logindialog.findViewById(R.id.login);
        cancel = logindialog.findViewById(R.id.cancel);
        username = logindialog.findViewById(R.id.username);
        password = logindialog.findViewById(R.id.password);

        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (username.getText().toString().trim().length() > 0
                        && password.getText().toString().trim().length() > 0) {
                    Toast.makeText(getApplicationContext(), "로그인 성공", Toast.LENGTH_LONG).show();
                    logindialog.dismiss();
                }
                else {
                    Toast.makeText(getApplicationContext(), "다시 입력하시오", Toast.LENGTH_LONG).show();
                }
            }
        });
        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                logindialog.dismiss();
            }
        });
        logindialog.show();
    }
}
반응형