Android

    [Android] 네트워크 연결상태 체크하기

    ⚠️ 2021.06.04에 작성된 글입니다 ⚠️ 구현 기능 앱 시작 시, 네트워크 연결 안 되어있으면 다이얼로그 띄우기 네트워크 끊어졌을 경우 다이얼로그 띄우기 네트워크 연결됬을 경우 다이얼로그 사라지게 하기 구현 순서 네트워크 클래스 만들기 액티비티에 네트워크 객체 생성하기 네트워크 클래스, NetworkConnection 만들기 1. 네트워크 변경 감지 네트워크 변경을 감지하기 위한 NetworkCallback을 구현한다. NetworkCallback은 사용에 앞서 반드시 등록 및 해제를 해주어야 한다. 등록 시 아래 메소드 중 하나를 사용하면 된다. requestNetwork(NetworkRequest, NetworkCallback) registerNetworkCallback(NetworkReque..

    [Android] chip 동적 추가하기

    [Android] chip 동적 추가하기

    ⚠️ 2021.08.09에 작성된 글입니다 ⚠️ chip을 동적으로 추가, 삭제하는 기능을 만들어보자. 최종 완성에서는 다음과 같은 기능이 있다. chip 추가 chip 삭제 모든 chip 이름 확인하기 핵심 코드 chip group 객체의 addView 메소드를 이용해 chip을 추가해준다. chip의 apply 중괄호 안에서 chip의 속성을 정의해준다. val chipGroup = findViewById (R.id.chip_group) var chipName = "새로운 chip" chipGroup.addView(Chip(this).apply { text = chipName // text 세팅 isCloseIconVisible = true // x 버튼 보이게 하기 setOnCloseIconClic..

    [Android] 팝업 메뉴 Popup Menu 구현하기

    [Android] 팝업 메뉴 Popup Menu 구현하기

    ⚠️ 2021.06.24에 작성된 글입니다 ⚠️ Popup Menu란? 특정 뷰에 고정된 모달 메뉴. 뷰를 클릭 시 메뉴가 나타난다. 해당 뷰 아래에 공간이 있으면 아래에, 없다면 위에 메뉴가 나타난다. 구현 순서 메뉴 레이아웃 만들기 팝업 메뉴 구현하기 팝업 보여주는 메소드 만들기 뷰 클릭 시 팝업 보여주는 메소드 실행하게 하기 각 메뉴 아이템 클릭 시 동작 정의하기 메뉴 레이아웃 (menu_world.xml) res > menu 디렉토리 안에 menu_world.xml 파일을 생성한다. 팝업 메뉴 구현 메인 액티비티(activity_main.xml) 레이아웃 1. showPopup() 구현 팝업 메뉴를 생성하고 보여주는 메소드를 만들어준다. // in MainActivity // 팝업 메뉴 보여주는 ..

    [Android] 컨텍스트 메뉴 Context Menu 만들기

    [Android] 컨텍스트 메뉴 Context Menu 만들기

    ⚠️ 2021.06.21에 작성된 글입니다 ⚠️ Context Menu란? 특정 항목이나 리사이클러뷰 각 항목에 대해 직접 작업을 수행할 수 있는 메뉴. 롱클릭시 메뉴가 나타난다. 주로 리사이클러뷰의 각 아이템에 대한 메뉴를 보이게 할 때 사용한다. 구현 순서 메뉴 레이아웃 만들기 컨텍스트 메뉴 구현하기 뷰를 컨텍스트 메뉴에 등록하기 컨텍스트 메뉴 생성하기 각 메뉴 아이템 클릭 시 동작 정의하기 메뉴 레이아웃 (menu_hello.xml) 1. 메뉴 디렉토리 생성하기 res > new > Android Resource Directory > menu 디렉토리 생성 2. 메뉴 레이아웃 생성하기 menu 디렉토리 안에 menu_hello.xml 생성 컨텍스트 메뉴 구현 메인 액티비티(activity_main...

    [Android] 하단 다이얼로그 BottomSheetDialog 구현하기

    [Android] 하단 다이얼로그 BottomSheetDialog 구현하기

    ⚠️ 2021.06.18에 작성된 글입니다 ⚠️ BottomSheetDialog란? 화면 하단에 붙어있는 다이얼로그. 아래처럼 여러 방식으로 구성할 수 있다. 구현 방법 BottomSheetDialog 객체 생성해서 만들기 커스텀 다이얼로그로 만들기 BottomSheetDialog를 상속해서 구현하기 BottomSheetDialogFragment를 상속해서 구현하기 BottomSheetDialog 객체 생성해서 구현하기 구현 순서 다이얼로그 레이아웃 만들기 뷰(activity, fragment)에서 bottomSheetDialog 생성하기 1. 다이얼로그 레이아웃 (dialog_content.xml) 2. 다이얼로그 생성 (MainActivity.kt) val dialog: BottomSheetDialo..

    [Android] 뷰바인딩 ViewBinding 적용하기

    [Android] 뷰바인딩 ViewBinding 적용하기

    ⚠️ 2021.06.12에 작성된 글입니다 ⚠️ 뷰바인딩이란 뷰 요소들을 묶어(bind)주는 것으로, 뷰 결합이라고도 한다. 뷰바인딩을 사용할 경우, 빌드과정에서 레이아웃(xml)의 뷰 아이디를 바인딩하는 클래스을 자동으로 만들어준다. 이를 사용해 findViewById를 사용하지 않고도 뷰를 참조할 수 있다. 코틀린의 경우, 레이아웃의 아이디값으로 바로 참조할 수 있는 synthetic이란 기능이 Android Studio 4.2 이후 지원하지 않게 되었다. 따라서 이를 대체하는 대안 중에 하나로 사용할 수 있다. 작업 순서 gradle 추가 view(Activity, Fragment)에서 binding 사용 gradle 추가 모듈 수준의 빌드 파일인 build.gradle (Module: ... .a..