분류 전체보기
[UMC/Android] 7주차 - Thread 이용한 타이머 만들기
7주차 - Thread 이용한 타이머 만들기 ⏱️ 구현 영상 코드 UMC_Android/week7 at master · ss99x2002/UMC_Android ⏱️ 구현 설명 시간 선택 페이지 59분 59초까지 타이머를 설정할 수 있는 페이지로 Number Picker를 사용해서 시간을 설정하도록 하였다. 시간 선택 페이지와 타이머 페이지는 FrameLayout으로 겹쳐두고 visible 속성을 통해서 보이고, 안보이고를 지정하였다. 따라서 시작버튼을 누르면 타이버 레이아웃이 뜬다 타이머 페이지 시간선택 페이지에서 선택한 시간의 타이머가 돌아가는 페이지로 시작 버튼을 누르면 타이머가 돌아간다. 시작 버튼을 누르면 해당 버튼은 invisible되고 정지 버튼이 visible된다. 정지버튼을 누르면 타이머가..
[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..