SQLite SharedPreferences의 키-값(key-value) 저장 형식의 한계점 극복 SQLite(www.sqlite.org)는 서버 단위에서 대용량 데이터를 처리하기 위한 용도보다는, 단일 응용 프로그램에서 비교적 적은 용량의 데이터를 처리하는데 적합한 데이터베이스 관리 시스템(DBMS)입니다. 즉, 안드로이드 앱과 같은 소규모의 프로그램에서 데이터베이스 관리가 필요한 경우 사용하기 적합한 데이터베이스 관리 시스템이죠. 단지 SQLite를 위한 API 함수를 호출하는 것만으로 데이터베이스를 위한 기능을 사용할 수 있으며, 데이터베이스 API를 통해 관리되는 모든 데이터는 하나의 파일에 저장됩니다. (그래서 SQLite의 데이터베이스를 백업하는 작업은 하나의 데이터베이스 저장 파일을 복사하는..
구조 액티비티(A) 위에 프래그먼트(B)를 얹고, 그 프래그먼트(B) 위에 프래그먼트(C)를 또 얹었다. 자녀 프래그먼트(C)위의 버튼을 눌러서 프래그먼트(C)를 다른 프래그먼트(C')로 교체하는 코드이다. 코드 MyPageFragment.kt (부모 프래그먼트. 프래그먼트 B) var frontFragment = FrontFragment() var backFragment = BackFragment() class MyPageFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { return inflater.infl..
리스트뷰 ListView ListView는 뷰들을 세로방향으로 스크롤이 가능하도록 디스플레이한다. 조금 더 유연한 활용을 위해서는 RecyclerView를 사용한다. 먼저, 리스트를 디스플레이하기 위해서는 xml파일에 listView를 추가한다. ListView는 본인 안에 담길 뷰의 내용이나 형식을 모르기 때문에 ListAdapter에게 필요한 뷰들을 요청한 후 그려낸다. setAdapter(android.widget.ListAdapter)를 통해서 어댑터와 리스트를 연결할 수 있다. 리스트뷰를 사용하면 반복되는 목록을 일일이 그리지 않아도 손쉽게 만들 수 있어서 편하다. 코드 ListAdapter.kt - getView안의 코드들은 각 뷰 하나마다 작동함 layout_listview.xml - 뷰 하..
코틀린 안드로이드 뒤로가기키 onBackPressed() 안드로이드 뒤로가기 물리키를 제어하는 코드 원래 뒤로가기키를 누르면 스택에 쌓인 순서대로 한개 뒤로 이동한다. 이 함수를 오버라이드 하는 방식으로 제어할 수 있다. override fun onBackPressed() { if (const == 3){ // do something } else{ // 기존의 onBackPressed()대로 작동하게 (뒤로가짐) super.onBackPressed() } } 이 함수는 직접 호출하지 않고 뒤로가기키가 눌리면 호출되는 방식인데 onBackPressed()의 if문 안에 조건을 넣어주고, 그 조건에 맞을 경우(뒤로가기키가 눌린 후, 조건에 맞는지 확인) 어떤 명령을 할지 짜주면 된다. 그 후 else에는 s..
ViewPager Indicator 뷰페이저로 이동할때마다 지금이 몇번째 페이지인지 알 수 있도록 하단에 인디케이터를 달아줬다. 인디케이터로 사용할 shape 만들기 /drawable 안에 shape_circle_gray.xml shape_circle_purple 뷰페이저 밑에 인디케이터 위치시키기 activity_main.xml 액티비티에 코드 작성하기 MainActivity.kt // indicator viewPager_main.addOnPageChangeListener(object : ViewPager.OnPageChangeListener{ override fun onPageScrollStateChanged(p0: Int) { } override fun onPageScrolled(p0: Int, p..
ViewPager로 프래그먼트간의 슬라이드하기 안드로이드에서 옆으로 넘기는 화면을 구현하기 위해 ViewPager을 사용한다. 객체에는 페이지 간 전환을 위한 스와이프 동작이 내장되어 있으며 기본적으로 화면 슬라이드 애니메이션을 표시하므로 직접 애니메이션을 만들 필요가 없다 (참고: developer.android.com/training/animation/screen-slide?hl=ko) Fragment 생성 먼저 넘길 페이지 수만큼 각각의 프래그먼트를 생성하고 class FirstFragment : Fragment(){ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?..
Spinner 리스트에서 하나의 값을 선택해야해서 스피너 구조를 사용하려했다. 아래의 사진과 같이 도르륵 움직이는 아이폰 스타일의 스피너를 예상했다. 안드로이드에서 Spinner 안드로이드에서의 스피너는 드롭다운 형태로 생긴 이런 구조를 말한다. xml에 Spinner을 넣어주고 코드에서는 이렇게 짜줬다. val agelist = Array(100, {i -> i+1900}) birth_spinner_userinfo.adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, agelist) birth_spinner_userinfo.onItemSelectedListener = object : AdapterVi..
- Total
- Today
- Yesterday
- 백준 2003
- 코틀린 리스트뷰
- 프로그래머스
- 카카오 기출
- 전화번호목록 파이썬
- 코틀린 뷰바인딩
- flutter simultor
- 데이터바인딩 뷰바인딩 차이
- 투포인터 알고리즘
- counting sort
- 카카오톡으로 로그인 오류
- 백준 1644
- 코틀린
- kotlin fragment
- 안드로이드 키해시
- 백준 1806
- 시뮬레이터 키보드
- Kotlin
- 백준알고리즘
- 코틀린 데이터바인딩
- 안드로이드 카카오톡으로 로그인
- TextFormField keyboard
- 소수 구하기 파이썬
- 백준
- 투포인터 알고리즘 파이썬
- 파이썬 최대공약수
- 카카오 키해시
- 코틀린 바텀네비게이션
- 안드로이드
- 코틀린 뷰페이저
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |