본문 바로가기

오늘은 뭘 배울까?/Android35

안드로이드 옵션 메뉴(Option Menu)란? 1. Menu 1-1. Menu란? 1-2. Option Menu란? 1-3. Menu 파일 생성 2. Option Menu 만들기 3. 실행결과 4. 예제 코드 1. Menu 1-1. Menu란? Option Menu 검색, 이메일 작성, 설정과 같이 앱 전체에 영향을 미치는 작업을 배치해야 함 앱 우측 상단에 '⋮' 모양의 아이콘을 누르면 생기는 메뉴 ex) 유튜브 화질이나 속도 등 설정할 때 누르는 버튼 Context Menu 요소를 길게 클릭하면 나타나는 플로팅 메뉴 ex) 사진을 꾹 누르면 나타나는 다운로드, 공유 등을 선택할 수 있는 메뉴 Popup Menu 요소를 클릭하면 나타나는 팝업 메뉴 팝업 메뉴의 작업은 해당 콘텐츠에 직접적으로 영향을 미쳐서는 안 됨 안드로이드에는 Menu라고 불리는.. 2021. 9. 26.
Binding Adapter(바인딩 어댑터)를 배워보자! 1. Binding Adapter 1-1. Binding Adapter란? 2. 사용법 2-1. Adapter 2-2. Layout 2-3. Activity 3. Binding Adapter의 목적 4. 예제 1. Binding Adapter 1-1. Binding Adapter란? 뷰의 속성을 설정하는 메서드는 여러 가지가 있다. 당장 텍스트 뷰만 해도 텍스트 크기, 텍스트 컬러, 높이, 여백 등등 무수히 많은 옵션들이 있으니 말이다. 하. 지. 만. 그럼에도 불구하고 내가 원하는 기능의 메서드가 없다면 어떻게 해야 할까? 액티비티에서 내가 원하는 메서드를 만들어 사용하듯이 레이아웃에서도 내가 원하는 메서드를 만들어 사용할 수는 없을까? 결론부터 말하자면 할 수 있다. Binding Adapter를 사.. 2021. 5. 29.
View Binding과 Data Binding 예제 1. 들어가기에 앞서 2. 예제 2-1. 가장 기본적인 코드 2-2. View Binding 2-3. View Binding + ViewModel 2-4. View Binding + ViewModel + LiveData 2-5. Data Binding 2-6. Data Binding + ViewModel 2-7. Data Binding + ViewModel + LiveData 2-8. 깃허브 링크 1. 들어가기에 앞서 뷰 바인딩(View Binding) 데이터 바인딩(Data Binding) 뷰 모델(View Model) 라이브 데이터(LiveData) 이 게시글은 위 4개의 개념이 모두 잡혀있다는 가정하에 따로 자세한 설명을 하지 않을 예정이다. 조합별로 어떻게 사용하는지 어떤 게 좋은지 비교 및 연습.. 2021. 5. 18.
LiveData(라이브 데이터)란? 1. LiveData란? 1-1. Observer 1-2. LiveData 1-3. LiveData의 장점 2. 사용법 2-1. gradle 2-2. LiveData 객체 생성 2-3. Observer 객체 생성 3. 예제 4. 더 알아보기 3-1. LifeCycleOwner 3-2. observeForever 1. LiveData란? 1-1. Observer class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // activity 설정 관련 소스 생략 DB에서 초기 아이템 목록 호출 UI 업데이트 추가 버튼 클릭 리스너 { 아이템 추가 UI 업데이트 } 삭제 버튼 클릭 리스너 { 아이.. 2021. 5. 14.
레트로핏을 이용하여 서버와 통신하자! 1. 사용법 1-1. Interface 정의 1-2. Retrofit 객체 생성 1-3. HTTP 요청과 응답 2. 예제 소스 이번 게시물에서는 Retrofit을 이용하여 버튼을 누를 때마다 다음 페이지의 공지사항을 불러와서 띄우는 기능을 구현할 것이다. 사이트는 크롤링을 허용해둔 배민 사장님 광장을 이용하였다. Retrofit의 개념과 사용 전 알아야 할것들은 이미 이전 게시물에서 다루었다. 먼저 읽고 오는 것을 추천! 1. 사용법 1-1. Interface 정의 interface BaeminService { @GET("contents?typeCode=notice&size=10") fun loadNotice(@Query("page") page: String): Call } 우선 위와 같은 API int.. 2021. 4. 12.