개발 71

[안드로이드] 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..

[안드로이드] startActivityForResult()와 registerForActivityResult()

startActivityForResult()를 썼는데 안드로이드 스튜디오에서 밑줄이 쳐져있어서 궁금해서 찾아봤다. 옛날에는 썼던 기억이 있는데 지금은 왜 deprecated 됐는가? startActivityForResult 호출한 액티비티로부터 결과를 받아오기 위해 startActivityForResult를 사용했다. 하지만 2020년 5월 기준으로 사용되지않고 registerForActivityResult 메소드가 생겨났다. 위 코드는 클릭했을 때 REQUEST_CODE_CATEGORY_ACTIVITY라는 request 코드를 가지고 CategoryActivity로 이동하는 코드이다. CategoryActivity에서 작업을 마치고 돌아올 때 그대로 requestCode가지고 원래 액티비티로 돌아오게 ..

개발/Android 2022.02.18

[2주차] 안드로이드 Frament 생명주기

Activity에 이어서 Frament까지 생명주기가 존재한다. 따라서 Fragment의 Lifecycle에 대해서도 알아보도록 하자. Fragment 란? 프래그먼트(Fragment)란 하나의 액티비티가 여러 개의 화면을 가지도록 만들기위해 고안된 개념이다. 여러 개의 레이아웃을 보여주기 위해 액티비티를 사용할 수 있는데, 액티비티의 경우 생명주기 관계나 여러 구조적인 문제들때문에 프래그먼트라는 개념이 나오게 되었다. Fragment를 사용하는 이유 액티비티는 프래그먼트보다 비교시 상대적으로 무겁다. 하지만 Fragment는 단독으로 존재할 수 없기에 Activity의 존재는 필수적이다. 액티비티에 비해 가볍게 추가/제거가 가능하다. 액티비티 스택에 액티비티를 쌓아두기보다 프래그먼트백스택에서 프래그먼트..

[2주차] SharedPreferences 사용법

개발을 하다보면 앱의 데이터들을 저장하여 관리해야한다. 데이터의 양이 많거나 중요한 데이터라면 DB나 서버를 통해 저장을 하면 되지만 간단한 문자열이나 설정 값은 DB에 저장하기보다는 안드로이드에서 기본적으로 제공하는 SharedPreferences를 사용하여 데이터를 관리하면 편리하다. 주로, 초기 설정 값이나 자동 로그인을 제어할 때 사용한다. SharedPrefernces 데이터를 파일 형태로 저장하며 앱 폴더 내에 저장되므로 앱을 삭제하면 당연히 데이터도 삭제된다. 파일의 위치는 다음과 같다. data/data/(package_name)/shared_prefs/SharedPreference SharedPreferences 클래스 작성하기 데이터를 타입에 따라 관리하기 때문에 따로 클래스를 만들어서..

[2주차] 안드로이드 생명주기

액티비티는 안드로이드 4대 컴포넌트 중에 하나이다. 4대 컴포넌트 중에서도 가장 중요하다. 생명주기 생명주기는 액티비티가 생성, 정지 재생, 종료 등 일어나는 상태 변화와 그에 따른 콜백 메소드를 총칭한다. 액티비티는 활동이 상태변화를 알아차릴 수 있는 여러 콜백을 제공한다. 예를 들어서 카카오톡을 실행시켰다가 유튜브를 실행시켰을 경우, 유튜브를 실행시켰다가 카카오톡을 실행시키면 처음부터 보이는 것이 아닌 진행상태를 다시 보여주는 경우, 화면이 가로 방향과 세로 방향으로 회전할 경우, 앱을 실행하다가 전화왔을 경우 등등.. 이러한 상태변화를 알려주는 여러 메소드들이 있다. 해당 메소드는 아래에서 설명한다. 생명주기가 필요한 이유? 액티비티가 변화할 때 발생하는 문제들을 사전에 방지할 수 있다. 1. 앱 ..