일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 베드트레이
- 한단어의힘
- 한달브런치북만들기
- 한달어스
- 끝말잇기
- 지지않는다는말
- 목적중심리더십
- 소프시스 밤부 좌식 엑슬 테이블
- 재택근무
- 슬기로운 온라인 게임
- 소프시스
- 아비투스
- 한달독서
- 어떻게 나답게 살 것인가
- 자취필수템
- 브런치작가되기
- T자형인재
- 베드테이블
- 커스텀린트
- 목적 중심 리더십
- 캐치마인드
- 리얼하다
- 프래그먼트
- 좌식테이블
- 면접
- 안드로이드
- 테트리스
- 북한살둘레길
- 함수형 프로그래밍
- 1일1커밋
- Today
- Total
정상에서 IT를 외치다
[Android, Anko Commons, Dialog] Anko Commons 를 사용한 다이얼로그 본문
코틀린에서 Anko Commons 를 사용한 다이얼로그 사용법에 대해 포스팅 하겠습니다.
먼저 Anko 는 제트브레인에서 직접 제작하여 배포한 코틀린 라이브러리 입니다.
안드로이드 어플리케이션 개발에 유용한 함수를 제공하는데요
Anko는 네 종류의 라이브러리를 나뉩니다.
1. Anko Commons
2. Anko Layouts
3. Anko SQLite
4. Anko Coroutines
이 중 Anko Commons 에 대해 몇가지 포스팅을 해보겠습니다.
먼저 기존의 코틀린에서는 다이얼 로그를 아래와 같이 사용합니다.
val alertDialogBuilder = AlertDialog.Builder(activity)
alertDialogBuilder.setTitle("확인해주세요")
alertDialogBuilder.setMessage("팝업이 생성되었습니다").setCancelable(false)
.setPositiveButton("확인", DialogInterface.OnClickListener({
dialog, which -> // 확인시 수행할 함수
}))
.setNegativeButton("취소", DialogInterface.OnClickListener({
dialog, which -> // 취소시 수행할 함수
}))
// 다이얼로그 생성
val alertDialog = alertDialogBuilder.create()
// 다이얼로그 보여주기
alertDialog.show()
참고로 DialogInterface.OnClickListener 함수는 아래와 같습니다.
/**
* Interface used to allow the creator of a dialog to run some code when an
* item on the dialog is clicked.
*/
interface OnClickListener {
/**
* This method will be invoked when a button in the dialog is clicked.
*
* @param dialog the dialog that received the click
* @param which the button that was clicked (ex.
* {@link DialogInterface#BUTTON_POSITIVE}) or the position
* of the item clicked
*/
void onClick(DialogInterface dialog, int which);
}
변수 dialog 는 클릭되어진 다이얼로그 자신을 나타내며
변수 whitch 는 클릭 된 버튼의 값을 리턴 하거나 (positive 에서는 -1, negative 에서는 -2 를 리턴합니다.)
리스트로 된 다이얼로그에서는 포지션을 리턴 합니다.
이를 좀더 코틀린 스럽게 바꾸면 아래와 같이 DialogInterface.OnClickListener 함수를 생략할 수 있습니다.
val alertDialogBuilder = AlertDialog.Builder(activity)
alertDialogBuilder.setTitle("확인해주세요")
alertDialogBuilder.setMessage("팝업이 생성되었습니다").setCancelable(false)
.setPositiveButton("확인") { dialog, which ->
// 확인시 수행할 함수
}
.setNegativeButton("취소"){ dialog, which ->
// 취소시 수행할 함수
}
// 다이얼로그 생성
val alertDialog = alertDialogBuilder.create()
// 다이얼로그 보여주기
alertDialog.show()
자 이제 Anko Commons 를 사용해 다이얼로그를 만들어 보겠습니다.
0. app 의 build.gradle 에 다음과 같이 추가합니다. (ankoVersion = '0.10.2')
//anko Commons
implementation "org.jetbrains.anko:anko-commons:$ankoVersion"
implementation "org.jetbrains.anko:anko-appcompat-v7-commons:$ankoVersion"
implementation "org.jetbrains.anko:anko-support-v4-commons:$ankoVersion"
필요에 따라 anko-appcompat-v7-commons 또는 anko-support-v4 를 빌드스크립트 내 의존성에 추가하시면 됩니다.
예륵 들어 android.support.v4.app.Fragment 에서 Anko 를 사용하기 위해서는 anko-support-v4 를 추가해 주셔야 합니다.
그러면 아래와 같이 alert 함수 하나만으로 다이얼 로그를 만들 수 있습니다.
alert(title = "확인해주세요", message = "팝업이 생성되었습니다.") {
positiveButton("확인") {
// 확인시 수행할 함수
}
negativeButton("취소") {
// 취소시 수행할 함수
}
}.show()
fragment 에서 사용하기 위해서는 alert 앞에 activity(getActivity) 를 붙이셔야 합니다.
activity.alert(title = "확인해주세요", message = "팝업이 생성되었습니다.") { ... }
'안드로이드' 카테고리의 다른 글
[Android, Error] Android WebView 디버깅 (0) | 2018.05.18 |
---|---|
[Android. Error] java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation (0) | 2018.05.17 |
[Android, RxEventBus] Rx를 사용한 EventBus (0) | 2018.05.10 |
[Android, Retrofit, RxJava2] RxJava2 을 사용한 Retrofit 통신 (0) | 2018.05.08 |
[Android, ConstraintSet] ConstraintSet 을 통한 애니메이션 (4) | 2018.05.03 |