전체 글 137

[안드로이드] RecyclerView Drag & Drop 구현 (GridLayout)

그리드레이아웃을 가진 리사이클러뷰 드래그앤드롭을 구현하였는데, 까먹기 전에 정리하려고 한다. 필요한 준비물은 MyTouchHelperCallback 코틀린파일과 DragAndDropAdapter 구현해야한다. (당연히 RecyclerView는 다 구현이 되어있어야겠죠?) MyTouchHelperCallback.kt ItemTouchHelper를 사용하기 위해서 ItemTouchHelper.CallBack을 구현해야한다. import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView class MyTouchHelperCallback( private val itemMoveListener: O..

개발/Android 2022.02.27

[안드로이드] TabLayout + Fragment 사용하기

1. activity_main.xml에 TabLayout 추가 2. activity_main.xml 에 fragment 태그 추가하기 3. fragment.xml, Fragment.kt 만들기 4. MainActivity 탭 메소드, 프래그먼트 객체화해주기 1. activity_main.xml에 TabLayout 추가 2. activity_main.xml 에 fragment 태그 추가하기 태그안에 name을 꼭 지정해주어야한다. 3. fragment.xml, Fragment.kt 만들기 탭을 두개 만들었으니 xml과 코틀린 파일도 각각 두개 만들어야한다. 위에는 랭킹 xml 아래는 즐겨찾기 코틀린 파일. package com.example.rc_4.Fragment data class Shoppingmal..

개발/Android 2022.02.27

[안드로이드] 스크롤 시 체크박스 해제되는 문제 해결

RecyclerView를 사용하다보면 좋아요 등 체크박스가 들어가 있는 레이아웃을 볼 수 있는데, 스크롤을 하면 체크박스가 유지되지 않고 풀려버리거나 생뚱맞게 다른 체크박스가 눌려져있는 것을 확인할 수 있다. 이것을 또 까먹기 전에 정리하려 한다. 우선, 체크박스가 왜 갑자기 해제되냐? RecyclerView는 뷰 객체를 한번에 생성하는 것이 아니라 계속 재활용해서 사용하기 때문에 스크롤했다가 다시 돌아오면 새로 초기화되어서 보여주기 때문이다. 그렇다면 어떻게 해결하면 좋을지 차근차근 살펴보자! 순서 1. 데이터 클래스 추가 (체크한 객체에 대한 현재값 저장) 2. 데이터 리스트 생성 3. 어댑터 수정 1. 데이터 클래스 추가 (체크한 객체에 대한 현재값 저장) 따로 체크박스에 대한 클래스를 만들어준다...

개발/Android 2022.02.27

[안드로이드] RecyclerView 사용하기 ( + ViewBinding, Fragment)

이번 포스팅은 RecyclerView를 사용법을 정리해볼건데, 인터넷에 나와있는 방법은 ViewBinding을 사용한 코드는 별로 없는 것 같아서 정리해보고자 한다. 이번에도 지그재그 어플을 본따서 만들예정. 순서 1. activity_main.xml에 RecyclerView추가 2. item.xml 만들기 3. DataClass 생성 4. Adapter 생성 5. MainActivity에 Adapter와 RecyclerView를 연결하기 1. fragment_main.xml에 RecyclerView추가 지금 저 스크롤뷰는 무시해주시고,,, RecyclerView를 붙여줍니다. 2. item.xml 만들기 리사이클러뷰에 들어갈 아이템 레이아웃을 만들어줍니다. 3. DataClass 생성 데이터클래스를 만..

개발/Android 2022.02.27

[안드로이드] ListView 사용하기

순서 1. activity_main.xml에 listview 추가 2. listview_item.xml 만들기 3. data class 만들기 4. MainActivity에 ArrayList 만들기 5. ArrayList 만들어서 add로 데이터 넣기 6. Adapter 만들기 (BaseAdatper 상속) 7. MainActivity에 Adapter 셋팅하고, ListView에 셋팅한 Adapter 넣기 어휴 굉장히 복잡한게 하나씩 까먹기 전에 해보자! 나같은 경우는 Activity위에 ListView를 올리는 작업은 인터넷에 많이 있기도 하고,, Fragment에 ListView를 사용해보았다. 그리고 지그재그 클론코딩 중이다! 1. activity_main.xml에 listview 추가 위의 화면은..

개발/Android 2022.02.27

[안드로이드] RecyclerView, ListView

어플리케이션을 사용하다보면 가장 많이 볼 수 있는 형태가 리스트형태이다. ListView와 recyclerView로 구현할 수 있는데, 이것이 어떻게 다른지 알아보자 ListView 사용자가 정의한 데이터 목록을 세로 방향으로 나열하여 화면에 표시하는 뷰 그룹의 한 종류이다. 간단하게 리스트를 만드는 부분에 있어서 장점을 가지고 있다. 간단한 아이템 형태를 만드는 경우에는 빠르게 적용이 가능한 ArrayAdapter를 제공한다. 아이템 클릭 리스너가 인터페이스로 존재한다. 하지만 아이템을 재사용하지 못함. 따라서 아이템을 생성할 때마다 뷰 바인딩을 계속해주어 성능저하가 일어남 RecyclerView 리사이클러뷰는 목록을 화면에 출력해주고 동적으로 편하는 컨테이너이다. RecyclerView는 ListVI..

개발/Android 2022.02.25

[안드로이드] statusbar(상단바) 변경

어플을 구현하다보면 핸드폰 위의 배터리와 시계 등을 표시하는 상단바의 색깔이 굉장히 촌스러워서 바꾸고 싶어질때가 있다. 다음번에 또 써먹기 위해 작성을 해보겠다. 우선 프로젝트의 res - values - colors.xml 을 열어준다. 그리고 자신이 적용하고 싶은 색깔을 지정해준다. 그 다음 res - themes - themes.xml 을 열어준다. 그 다음에 item을 추가해주는데 원래 안드로이드 스튜디오가 가지고 있던 statusBarColor는 주석처리 또는 없애야한다. 그러면 깔끔하게 자신이 지정한 색으로 statusBar로 변경할 수 있다 😀

개발/Android 2022.02.23

[2주차/과제] 생명주기를 활용 + BottomNavigation, Fragment

당근마켓 로그인 화면 (당근마켓은 id,pw를 사용하는 다른 어플들과 달리 휴대폰 번호로 바로 로그인 가능) onCreate() : 당근마켓 휴대폰 번호 sharedpreferences에 저장 onStart() : 로그인을 했다면 바로 메인 화면으로 UI 설정 onPause() : 앱 최소화하고 다시 들어오면 EditText hint속성을 ‘다시 입력해주세요’ 로 변경 onPause(), onResume() : 앱을 최소화하고 다시 들어와도 EditText 유지 onResume() : EditText 유지는 원래 있는 기능이라 작성중인 EditText를 초기화해주는 걸로 변경 onCreateView : 로그아웃 버튼을 누르면 SharedPreferences에 유저정보 지우고 로그인 화면으로로 이동 → H..