안드로이드 Alert Dialog 라고 불리는 기본 다이얼로그를 만들어 봅니다.
결과는 하기와 같습니다.
1. 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">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Alert Dialog"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
2. 다이얼로그 박스 구현하기
- 다이얼로그 를 구성합니다. 3개의 버튼을 달았습니다.
- 각 버튼의 이름에는 특별한 기능이 없습니다. 개발자가 원하는 기능을 구현하면 됩니다.
- 기본 다이얼로그 를 만들기 위해서는 AlertDialog.Builder 를 사용해야 합니다.
- builder.show() 함수를 콜 하지 않으면 화면에 보여지지 않습니다.
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Alert Dialog");
builder.setMessage("기본 다이얼로그 입니다");
builder.setIcon(R.drawable.coffee);
builder.setPositiveButton("Good", dialogListener);
builder.setNegativeButton("Bad", dialogListener);
builder.setNeutralButton("Not Bad", dialogListener);
builder.show();
}
3. 다이얼로그 박스의 이벤트 리스너 구현하기
- 리스너 안에서 각 버튼의 동작을 구현합니다.
class DialogListener implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialogInterface, int i) {
switch (i){
case DialogInterface.BUTTON_POSITIVE:
Toast.makeText(MainActivity.this, "Good", Toast.LENGTH_LONG).show();
break;
case DialogInterface.BUTTON_NEGATIVE:
Toast.makeText(MainActivity.this, "Bad", Toast.LENGTH_LONG).show();
break;
case DialogInterface.BUTTON_NEUTRAL:
Toast.makeText(MainActivity.this, "Not Bad", Toast.LENGTH_LONG).show();
break;
}
}
}
- 별도의 리스너를 만들어서 각각의 버튼에 대한 이벤트를 구현합니다.
만약 버튼이 하나라면, 해당 뷰에 리스너를 바로 연결하면 됩니다. 하기 처럼 말이죠.
builder.setNeutralButton("Not Bad", dialogListener).setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
}
});
하기는 안드로이드 개발자 페이지에서 다루는 대화상자 내용입니다.
감사합니다.
반응형
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
간단 브라우저 만들기 (0) | 2022.07.21 |
---|---|
체크박스 형 기본 다이얼로그 만들기 (8) | 2022.07.19 |
리스트형 기본 다이얼로그 만들기 (2) | 2022.07.17 |
팝업 메뉴 만들기 (6) | 2022.07.15 |
플로팅 컨텍스트 메뉴 만들기 (4) | 2022.07.14 |
댓글