전체 글
[UMC/Android] 6주차 - Bottom navigation, TabLayout, ViewPager2
6주차 - Bottom navigation, TabLayout, ViewPager2 구현 영상 설명 및 배운 점 BottomNavigationView를 이용해서 홈, 프로필, 달력 fragment 간 이동할 수 있도록 만들었다. 프로필 fragment에서는 TabLayout과 ViewPager2를 이용해서 프로필 fragment와 프로필 수정 fragment를 만들었다. Fragment 위에 ViewPager2를 설정할 때 ViewPager Adapter에서 FragmentActivity를 매개변수로 보내야한다. fragment는 activity와 다르기 때문에 val profileVPAdapter ~~= ProfileVPAdapter(this)~~ 로 보내면 안되고, = Profile(this.requ..
[BOJ/C++] 1966번 프린터 큐
[Silver III] 프린터 큐 - 1966 문제 링크 성능 요약 메모리: 2024 KB, 시간: 4 ms 분류 자료 구조(data_structures), 구현(implementation), 큐(queue), 시뮬레이션(simulation) 문제 설명 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인..
[BookNote] 메모장 어플 디자인
기간: 2022.11.05 제작 제작도구: Figma와 PhotoShop 사실 UMC 과제로 간단 메모앱을 만드는 거였는데, 뭐든 실제 앱처럼 완성도있게 만들고싶다는 욕심때문에 여러 작업들을 해봤다. 오랜만에 포토샵으로 디자인하니 재밌었다. 종종 이 카테고리에 내 디자인을 아카이빙 해야겠다.
[UMC/Android] 5주차 - 메모 어플 만들기
5주차 - 메모 어플 만들기 👾 할 커스텀 목록 메모 작성 날짜 기록 item 클릭 시 메모 이동 후 내용 수정가능 메모 작성 완료시 Custom Dialog 띄우기 휴지통 클릭 시 삭제 간단한 splash 화면 구현하기. back시 Custom Dialog 띄우기 메모 title 텍스트 색 변경하는 palette Dialog 만들기,텍스트 변경된 색 저장하기 닉네임 입력받고 00님의 메모 title 설정하기 👾 구현 영상 및 설명 구현 영상 💥 Splash 화면 앱 실행시 약 2초간 뜨는 화면으로 직접 디자인 후 실행되도록 하였다. 👤 이름 입력창 닉네임을 입력하는 창이 나온다. 입력하지 않고 버튼을 누를시 닉네임을 입력하라는 Toast Message가 뜨도록 하였다. 📝 Memo 화면 닉네임 입력창에..
[Android] Recyclerview item Click / Click Listener 등록하는 법
Recyclerview item Click / Click Listener 등록하는 법 RecyclerView의 클릭이벤트는 onBindViewHolder 함수에서 setOnClickListener를 통해서도 구현할 수 있고, 외부에서 click 이벤트를 정의하고싶다면 리스너 인터페이스를 만들 수도 있다. 이 게시물에서는 외부에서 item click시 발생되는 이벤트를 정의하기 위해 리스너 인터페이스를 만드는 방법을 알아보고자 한다. 리스너를 만들면서도 리스너에 대해 잘 모르는거같아서 찾아보았다. Listener란? 리스너는 특정 이벤트를 처리하는 인터페이스로 추상메서드를 받아 실행하며 이벤트 핸들러라고도 불린다. RVAdapter에서 Click Listener 만드는 법: 1️⃣ interface를 만든..
[Android] RecyclerView란? / RecyclerView Adapter 사용법
⭐ RecyclerView란? View를 재활용하는 기능을 추가한 효과적인 ListView이다. ViewHolder란? 각 뷰를 보관하는 Holder 객체이다. → ListView 와 RecyclerView는 inflate를 최소화 하기 위해 뷰를 재활용한다. 이 때 각 뷰의 내용을 업데이트하기 위해서는 findViewById를 매번 호출해야하고, 이로 인한 성능저하 때문에 ItemView의 각 요소를 바로 엑세스 할 수 있도록 저장해두고 사용하기 위한 객체를 만든다. 그리고 이것이 ViewHolder 이다. inflate : xml로 쓰여있는 View의 정의를 실제 View 객체로 만드는 것을 의미한다. 특징 //ViewHolder 만들어질 때 실행할 동작 override fun onCreateView..
[Android] RecyclerView 데이터 추가/삭제/수정 반영 방법
RecyclerView 데이터 추가/삭제/수정 반영 방법 RecyclerView를 사용할 때 데이터를 삭제/수정/추가하는 일이 일어날 수 있다. 메모앱을 만들면서 메모를 추가/삭제/수정하는 기능이 필요했고, 이번 게시물에서는 바뀐 데이터를 RecyclerView에 반영하는 방법을 알아보고자 한다. RecyclerView 와 dataList RecyclerView는 아이템 뷰를 재활용해 각 데이터들을 나타내기 때문에 뷰에 내용을 담을 데이터리스트가 필수다. 따라서 RVAdpater를 만들 때 매개변수로 dataList를 전달해준다. 이 때 dataList에 일어날 수 있는 상황은 크게 3가지가 있다. dataList에 data가 추가되는 상황 새로운 data가 dataList에 추가된 것이다. dataLi..
[Android] 안드로이드 기본 dialog 생성하기
기본 dialog 생성하기 Custom Dialog가 아닌 안드로이드에서 제공하는 기본 Dialog를 사용하는 방법을 알아보고자 한다. 기본 구성 val dialog = AlertDialog.Builder(this) // dialog를 만든다 dialog.setTitle() // 다이얼로그 상단에 뜰 문구를 작성한다 .setMessage() // 상단 바로 아래에 뜰 문구를 작성한다. .setPositiveButton(""){dialog,which -> //setPositiveButton 매개변수로 버튼 안에 들어갈 텍스트를 쓰면된다. //해당 버튼을 눌렀을 때 발생시킬 이벤트를 작성한다. } .setNegativeButton(""){dialog,which -> // 위와 마찬자기로 버튼안에 들어갈 텍스..
[Android 오류] Button Style 적용 안됨/색상변경 안됨
Button Style 적용 안됨/색상변경 안됨 문제 style xml을 만들어 적용해도 만든 style로 적용되지 않는 문제가 발생했다. 해결 themes.xml에서 parent = "Theme.AppCompat.Light"으로 변경한다.
[UMC/Android] 3주차 - Activity/Fragment간 데이터 전달
3주차 - Activity/Fragment간 데이터 전달 배운 점 Fragment 간 Data를 주고 받을 때 FragmentManager에 Bundle로 data를 담아 전달하는 방법만 알고 있었는데, Fragment Result API에 대해 새롭게 알게 되었다. 일회성 데이터를 Fragment간 또는 Fragment와 host Activity간 전달하고 싶을 때 사용한다. 사용하기 위해 implementation "androidx.fragment:fragment-ktx:1.3.0" 의존성 추가해야한다. Fragment 간 data 전달 Fragment2에서 Fragment1 로 데이터를 전달하는 예시 Fragment1에 result Listener를 설정, Fragmetn1 FragmentManag..
[Android 오류] JAVA.LANG.CLASSCASTEXCEPTION 에러 발생
JAVA.LANG.CLASSCASTEXCEPTION - 클래스 형 변환 연산을 잘못 할 경우 발생하는 예외이다. 트러블슈팅 val value = etValue.text.toString() setFragmentResult("requestKey", bundleOf("bundleKey" to value)) 원인 - value부분을 etValue.text로 설정 후 받는쪽 Activity에서 String으로 받아 JAVA.LANG.CLASSCASTEXCEPTION 이 발생하였다. 해결 - .toString() 으로 String 자료형으로 바꾸니 해결되었다.