본문 바로가기

소소한 코딩 이야기/Android

(7)
Date Picker Dialog에서 선택 날짜 제한하기 Date Picker Dialog를 추가 후, 이번에는 날짜에 제한을 주어 start date 를 선택 하면 end date 선택 시 start date 보다 이전 날짜는 선택할 수 없도록 코드를 추가 해보았습니다. 1. Start Date //선택 된 start date를 담아줄 변수 선언 private lateinit var selectedDay: Calendar @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_add_contents) //start date start_date_btn..
Fragment에서 RecyclerView 사용 시 Null Point Exception 발생 시 해결방법(Kotlin) Fragment에서 RecyclerView를 이용하여 체크리스트를 구현해 보았습니다. 그런데 Activity에서 구현할 때와 다르게 계속 Null Point Exception이 발생되면서 어플이 강제종료 되는 현상이 발생 되었습니다. 분명 Adapter, ViewHolder, ViewModel 그리고 로컬 DB까지 모두 코드 상 오류가 없음을 확인하였고, DB에는 데이터가 정상적으로 INSERT 되는 것 까지 확인하였습니다. 그렇게 약 이틀 간 같은 에러와 싸우며 다양한 방법을 적용해 보던 중, 드디어.. 해결방법을 찾아내었습니다ㅠㅠ 처음에는 아래 코드와 같이 Activity에서 RecyclerView를 생성할 때 처럼 Fragment에서 Activity의 onCreate( )와 같은 onCreateVi..
View Binding 사용하기 ● View Binding? - View Binding 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성 - 모듈에서 사용 설정된 View Binding은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성 - 바인딩 클래스의 인스턴스에는 상응하는 레이아웃에 ID가 있는 모든 뷰의 직접 참조가 포함 ● 적용방법 1. View Binding 요소를 build.gradle 파일에 추가 android { compileSdkVersion 30 buildToolsVersion "30.0.2" ... //뷰바인딩 사용 설정 buildFeatures { viewBinding = true } } 2. Activity에서 View Binding 사용 (onCreate( ) 메서드에서 구현) 1) 생성된 Bind..
Date Picker Dialog를 이용하여 날짜 입력하기 컨텐츠 입력 시 Date Picker Dialog를 이용하여 달력을 띄우고 날짜를 선택하는 코드를 작성해 보았습니다. 달력을 구현하는 API들이 많이 있었지만 단순히 날짜만 선택하는 기능만 담으려는데 코드가 복잡해지는 것 같아 가장 심플한 기본 Date Picker Dialog를 적용했습니다. 1. UI 만들기 activity_add_contents.xml 2. 버튼 클릭 시 Date Picker Dialog 띄우기 class AddContentsActivity : AppCompatActivity() { //Calendar private var calendar = Calendar.getInstance() private var year = calendar.get(Calendar.YEAR) private v..
Splash Screen 구현하기 1. Splash Screen에 사용 할 이미지 준비 - 미리보기 화면을 보면 마치 이미지가 전체화면 크기로 꽉차게 나오는 듯 보입니다. 그러나 막상 에뮬레이터를 실행해보면 지정한 사이즈 대로 잘 나오는 것을 볼 수 있습니다. (여기에 속은 1인 입니다..ㅠㅠ) 2. Splash Activity 생성 class SplashActivity : AppCompatActivity() { override fun onPostCreate(savedInstanceState: Bundle?) { super.onPostCreate(savedInstanceState) Handler().postDelayed({ val intent = Intent(this, MainActivity::class.java) startActivit..
Figma를 이용하여 어플 기획해보기 요즘 '개발하는 정대리님'의 유투브를 보며 안드로이드 강의를 열심히 시청하며 새로운 언어를 공부하고 있습니다. 강의를 들으며 가계부 웹사이트를 구상하던 것을 가계부 앱으로 전환하게 되었습니다. 그리고 화면을 그려보기위해 어떤 프로그램을 사용해야 할까 고민하던 중 개발하는 정대리님께서 알려주신 'Figma' 라는 툴을 써보게 되었고 처음에는 어떻게 다뤄야할지 방법을 몰라 어렵게만 느껴졌던것이 제대로 써보니 단순히 UI 화면을 그려보는 용도를 넘어서 프로젝트를 기획하는데에도 정말 유용한 툴이라는 생각이 들었습니다. 아무래도 디자인에 대한 지식이 많이 부족하다보니 어떻게 구상을 해야하고 정리를 해야할지 막막했는데 Figma덕분에 머릿속으로만 생각했던 디자인을 디테일하게 그려볼 수 있게 되었습니다. 또한 UI를..
[Android 화면구성하기] 1. 액티비티(Activity) (1) ★안드로이드를 구성하는 요소 - 컴포넌트(Components) 액티비티(Activity) 화면 UI를 담당하는 컴포넌트 브로드캐스트 리시버 (Broadcast Receiver) 시스템 또는 사용자가 발생하는 메세지를 수신하는 컴포넌트 서비스(Service) 백그라운드 코드 처리를 담당하는 컴포넌트(서브 스레드와 비슷한 개념) 콘텐트 프로바이더 (Content Provider) 앱 간의 데이터 공유를 위한 컴포넌트 인텐트(Intent) 액티비티, 브로드캐스트 리시버, 서비스 3개의 컴포넌트를 실행하기 위해 시스템에 전달되는 메시지 도구 콘텐트 리졸버 (Content Resolver) Content Provider가 제공하는 데이터를 사용하기 위한 도구 ★Major Component : Activity, B..