[안드로이드] Material Dialog [ Alert dialog , Simple dialog , Confirmation dialog ] 쉽게 만드는 방법
이번 시간에는 Material 대화 상자(Dialog)를 만들어 보겠습니다.
대화 상자에는 여러 종류가 있으며, Alert dialog , Simple dialog , Confirmation dialog
를 어떻게 만드는지 알아보겠습니다.
build.gradle(Module:프로젝트명:app)
dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.
implementation 'com.google.android.material:material:1.4.0'
2020.12.19 - [안드로이드] - [안드로이드]라이브러리 찾아 등록하는 방법
( res -> value -> themes)
style 태그 속성 parent를 아래 코드로 변경해주시면 됩니다.
<style name="Theme.MaterialExam" parent="Theme.MaterialComponents.Light.DarkActionBar">
<?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:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_alertDialog"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Alert dialog" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_simpleDialog"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Simple dialog" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_confirmationDialog"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Confirmation dialog" />
</LinearLayout>
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class MainActivity extends AppCompatActivity {
int indexId = 0;
String colorList[] = {"Red", "Blue", "Green"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_alertDialog = findViewById(R.id.btn_alertDialog);
btn_alertDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showAlertDialog();
}
});
Button btn_simpleDialog = findViewById(R.id.btn_simpleDialog);
btn_simpleDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showSimpleDialog();
}
});
Button btn_confirmationDialog = findViewById(R.id.btn_confirmationDialog);
btn_confirmationDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showConfirmationDialog();
}
});
}
/**
* 경고상자
*/
private void showAlertDialog() {
Context context = MainActivity.this;
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
builder.setTitle("title")
.setMessage("message")
.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getApplicationContext(), "Cancel", Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getApplicationContext(), "Ok", Toast.LENGTH_SHORT).show();
}
}).show();
}
/**
* 간단한 대화상자
*/
private void showSimpleDialog() {
Context context = MainActivity.this;
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
builder.setTitle("title")
.setItems(colorList, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
Toast.makeText(getApplicationContext(), colorList[which], Toast.LENGTH_SHORT).show();
}
}).show();
}
/**
* 확인 대화상자
*/
private void showConfirmationDialog() {
Context context = MainActivity.this;
String[] selectId = {colorList[indexId]};
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
builder.setTitle("title")
.setSingleChoiceItems(colorList, indexId, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
selectId[0] = colorList[which];
}
})
.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getApplicationContext(), "Cancle", Toast.LENGTH_SHORT).show();
}
})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getApplicationContext(), selectId[0] + " 선택했습니다.", Toast.LENGTH_SHORT).show();
}
}).show();
}
[안드로이드] Material tabs [Fixed tabs, Scrollable tabs] 쉽게 만드는 방법 (0) | 2021.12.16 |
---|---|
[안드로이드] Material Dialog Custom 쉽게 만드는 방법 (0) | 2021.12.15 |
[안드로이드] Material Dropdown menu 쉽게 만드는 방법 (0) | 2021.12.13 |
[안드로이드] Custom Spinner 쉽게 만드는 방법 (0) | 2021.12.12 |
[안드로이드] 동적으로 스피너(Spinner)에 데이터 넣는 방법 (0) | 2021.12.11 |
댓글 영역