일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 외부css
- Absolute
- 테스트세트
- 스크롤뷰
- 스낵바
- 지도학습
- fit메소드
- 선택자 조건
- kneighbors()
- 레이아웃
- predict메소드
- 데이터 전처릴
- 넘파이
- 머신러닝
- hover
- 훈련세트
- score메소드
- 픽셀 깨짐
- 버튼 상속
- CSS
- LENGTH_INDEFINITE
- apapter
- K최근접이웃 회귀
- position
- 메모리 객체화
- 표준화 z
- relative
- JavaScript
- 웹사이트 공개
- HTML
- Today
- Total
베짱이와 노는 개미
안드로이드 앱 프로그래밍#8-대화상자 띄우기 본문
오늘은 대화상자를 띄워보겠다.
앱을 사용하다 보면 정~말 많이 보는 기능이다.
앱 프로그래밍의 묘미는 평소에 사용하던 기능들을 다른 각도로 알아보는 맛인것같다.
이게 이거였어? 라는 순간이 많다
일단 코드를 전반적으로 설명해보자면
대화상자를 띄우고 예/아니요 클릭기능을 만든후에
예를 누르면 창이 닫히면서 스낵바 기능으로 "예를 눌렀습니다" 메세지 기능을 띄울것이고
아니로를 누르면 "아니오를 눌렀습니다."를 띄울것이다.
즉 저번에 알아봤던 스낵바 기능을 복습해보는 의미도 있다.
일단 코드를 먼저보면
package com.example.dialog;
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;
import com.google.android.material.snackbar.Snackbar;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
textView = (TextView) findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showMessage();
}
});
}
public void showMessage(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("안내");
builder.setMessage("종료하시겠습니까?");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Snackbar.make(textView,"예를 눌렀습니다.", Snackbar.LENGTH_LONG).show();
}
});
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Snackbar.make(textView,"아니오를 눌렀습니다.", Snackbar.LENGTH_LONG).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}
button의 clicklistener에서 선언된 onClick 메소드 안에 보면
새로운 메소드 showMessage()를 만들었다.
이번에 새로 나온 클래스는 AlertDialog이다.
showMessage 메소드 선언부분을 보면 대화상자의 전반적인 구조를 알수있다.
에뮬레이터 결과를 보면
이렇게 나온다
왼쪽위에 있는 textview는 snackbar가 매개변수로 받을 textview가 없길래
하나 만들어준것이다. 텍스트를 없애서 깔끔하게 해도 되지만 그냥 내비뒀다.
저 DIALOG버튼을 누르면 대화상자가 떠야한다.
이렇게 뜬다
경고 이미지, 안내, 종료하시겠습니까?, 아니오 예
이모든게 많이 봐온 기능들인데 실제로 해보니 뭔가 뿌듯하다.
그럼 이제 저번에 배운 스낵바가 제대로 작동하는지를 알아보기위해 '예'나 '아니오'를 눌러보겠다.
먼저 예를 눌러보면
설정해준 텍스트가 그대로 스낵바 기능으로 보인다.
됐다!!
사실 이번 공부에서 좀 애를 먹인게 있었다.
내 안드로이드 스튜디오의 SDK버전이 28인데 그 이전 버전에서는 스낵바를 사용하기위해서 라이브러리를 수동으로 가져와야한다.
나도 수동으로 가져왔었다 처음에는
그런데 자꾸 manifest 병합 에러가 나는것이다.
SDK버전을 gradle에서 낮춰보기도 하고 추가해보라는 코드도 추가해봤는데 계속 안됐다.
2일정도 계속 구글링, 검색을 해봐도 해결이 안되길래 처음부터 코드 짜고 해봤더니
알고보니 내 버전에서는 라이브러리를 따로 가져오지 않아도 스낵바를 사용할수있다는것을 알수있었다.
찾아보면 아무것도 아닌 오류였다.
'안드로이드 앱 프로그래밍' 카테고리의 다른 글
안드로이드 앱 프로그래밍#10 - 비트맵 버튼 (0) | 2021.08.01 |
---|---|
안드로이드 앱 프로그래밍#9 - 나인패치 이미지 (0) | 2021.07.31 |
안드로이드 앱 프로그래밍#7-스낵바 띄우기 (0) | 2021.07.29 |
안드로이드 앱 프로그래밍#6-인플레이션 (0) | 2021.07.27 |
안드로이드 앱 프로그래밍#5-키 이벤트 처리 (0) | 2021.07.26 |