모바일/안드로이드앱
안드로이드 알림 대화상자 보여주기 / Android Studio / 안드로이드 앱만들기 공부 17
yy_dd2
2021. 2. 26. 17:31
반응형
알림 대화상자 보여주기
- 토스트와 함께 많이 사용된다
- 사용자에게 확인을 받거나 선택하게 해야할 때 사용
- 입력을 받는 것보다는 메시지를 전달하는 역할로 사용 '예' '아니오' 같은 응답처리
1. SampleDialog 프로젝트 생성
2. activity_main.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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textShowMessage"
android:textSize="24sp"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/buttonFloat"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
/res/values/string.xml
<resources>
<string name="app_name">SampleDialong</string>
<string name="textShowMessage">버튼을 누르면 대화상자가 뜹니다.</string>
<string name="buttonFloat">띄우기</string>
</resources>
3. MainActivity.java 코드 추가
package com.togapp.sampledialong;
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.TextView;
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();
}
});
}
// public class MainActivity 에서만 사용가능한 showMessage()
private void showMessage(){
// 다이어로그 만들기 빌더 객체 생성
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("안내");
builder.setMessage("알림창 확인을 해봅시다");
// /app/res/drawable 폴더에 있는 icon 불러오기
builder.setIcon(android.R.drawable.ic_dialog_alert);
// "예" 버튼 설정
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String message = "예 버튼이 눌렸다";
textView.setText(message);
}
});
// "취소" 버튼 설정
builder.setNeutralButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String message = "취소 버튼이 눌림";
textView.setText(message);
}
});
// "아니오" 버튼 설정
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String m = "아니오 버튼 눌림";
textView.setText(m);
}
});
// 다이어로그 대화상자 객체 생성하고 보여주기
AlertDialog dialog = builder.create();
dialog.show();
}
/*
public : 모든 package에서 해당 class로 접근이 가능하다.
(클래스내부, 패키지, 상속받은클래스, 이외의영역)
private : 자신을 포함한 package에서만 해당 class로 접근이 가능하다.
(클래스내부)
protected : 상속받은 class 에서만 해당 class로 접근이 가능하다.
(클래스내부, 패키지)
*/
}
- AlertDialog의 import 구문은 설치했던 appcompat 패키지 파일로 임폴트한다
- builder.setPositiveButton : 예버튼 설정
- builder.setNeutralButton : 취소버튼 설정
- builder.setNegativeButton : 아니오버튼 설정
...button("text", new DialogInterface.OnClickListener(){} OnClickListener를 사용해서 textView에 메시지를 보여줄수있음
결과
![]() |
![]() |
![]() |
반응형