안드로이드 스튜디오 대화상자
안드로이드 스튜디오반응형
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();
}
}
반응형
'안드로이드 스튜디오' 카테고리의 다른 글
| 안드로이드 스튜디오 그래픽 2 (0) | 2020.04.26 |
|---|---|
| 안드로이드 스튜디오 그래픽 (0) | 2020.04.26 |
| 안드로이드 스튜디오 메뉴 설정 (0) | 2020.04.25 |
| 안드로이드 스튜디오 event 처리 4 (seekbar) (0) | 2020.04.19 |
| 안드로이드 스튜디오 터치 이벤트 (0) | 2020.04.19 |