본문 바로가기

Kotlin

(66)
local.properties이용해서 API KEY 숨기기 gitignore가 잘 안되서 local.properties에 넣는 방법을 사용. (이미 gitignore에 있기 때문에 적당한 편법이랄까..) 100% 이해한 건 아니라서 전혀 논리정연하지 않지만 미래의 나를 위해 일단 기록.... 1. local.properties 파일에 숨길 api key 직접 적기 api_key_name="api_key_내용" 근데 따옴표를 붙여야 하는지 아닌지는 잘 모르겠다 ㅠ googlemap api에서는 안붙이고 했는데 openweather는 붙여야만 되더라... 내일 구글맵 잘 돌아가는지 다시 봐야할듯 . (가장 상위에 있는) app수준의 gradle에 코드 추가 Properties properties = new Properties() properties.load(proj..
kotlin - unresolved reference 갑자기 오류 뜰 때 건드리지도 않은 xml파일이 갑자기 바인딩이 안되서 빨간줄이 뜰 때가 있다.. 매번 검색하는데 매번 모르겠다 ㅋㅋㅋㅋㅋㅋ File > invalidate caches / restart 으로 프로그램 재부팅&재빌드 했더니 다시 제대로 동작한다! ^^ 아니넹..... 문제 해결하니까 과거에도 이랬던 게 생각난다...! 나는 R.layout....을 못찾아서 문제가 됐던 건데 import 부분에 import android.R 이 있는지 확인할 것!!!!!!!! 지워줄것!!!!!
editText 텍스트 변경 감지 editText.addTextChangedListener(object: TextWatcher{ override fun afterTextChanged(s: Editable?) { val str = s.toString() inputBtn.isEnabled = str.isNotEmpty() } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun onTextChanged(s: CharSequence?,..
fcm 선택지 1. 토큰 정보를 손님 db에 같이 저장해서 가게가 손님을 호출하면 가게에서든 서버에서든 토큰정보를 이용해 상태바 알림을 보낸다. -> 사실상 맞는 방법같지만 db쪽에서 귀찮아질수도? 2. 손님이 "자신의 번호"를 구독한다. 가게에서든 서버에서든 "번호" 를 구독한 사용자에게 상태바 알림을 보낸다. -> 뭔가 편법같지만 가게에서 db를 통해 이미 손님의 번호를 알고 있는 상태이니 새로 db를 거칠 필요없음 가상기기 > 내 폰 내 폰 > 가상기기 둘 다 토큰 정보를 이용해서 서로에게 상태바 알림을 보낼 수 있음을 확인했다. but, 기본적으로 background에서만 알림이 온다. -> foreground에서도 수신이 가능하게 해야함! https://beomseok95.tistory.com/119 ..
[Kotlin] sqlite - room, 비동기식 처리, 코루틴 지금까지 자바, c언어, 파이썬, 코틀린.. 언어만 배워왔지 실질적으로 back-end는 건들여본 적이 없었따 ㅠㅠㅠㅜ 학교다니면서 심지어는 db수업도 들어본 적이 없구.. 이번에 sqlite써보는 김에 수업 때 배운건 helper를 사용하는 것이지만 room으로 한번 도전...(아직 뭔지도 모르겠음) 일단 전반적으로 제일 정리가 잘 되어있던 블로그. https://namget.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-ROOM-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%BD%94%EB%A3%A8%ED%8B%B4 [안드로이..
RecyclerView에 listener 달아주기 1.어댑터 클래스에 인터페이스 및 호출하고 싶은 함수 정의 어댑터에서 호출할 함수이기 때문에 어댑터에서 사용할 수 있는 데이터들을 인자로 interface OnItemClickListener { fun OnItemClick(holder: MyViewHolder, view: View, data: MyData, position: Int) } 2.객체 멤버 선언하기 // 누군가가 값을 채워 사용할 것 var itemClickListener: AdapterView.OnItemClickListener? = null3.VIewHolder클래스에 이벤트 달아주기 itemView.setOnClickListener{ val position = adapterPosition // 어떤 것을 클릭했는지 itemClickLis..
RecyclerView 만들기 RecyclerView 기본 틀 만드는 법 1.레이아웃에 RecyclerView를 배치한다. 2.아이템에 해당하는 레이아웃 만들기(ex - row.xml) 3.recyclerView에 layoutmanager 달아주기 recyclerView.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) 4.adapter class만들기 - RecyclerVIew.Adapter() 상속하기 class MyAdapter(val items:ArrayList):RecyclerVIew.Adapter(){ } 5.MyVIewHolder가 없으므로 만들어주기 - RecyclerView.ViewHolder 상속 inner class MyVi..
AsyncTask 네트워크 작업 등을 하려면 백그라운드에서 작업하는 별도의 쓰레드가 필요하다. 보통은 inner class로 만든다 AsyncTask를 상속받아서 만들어야 한다. 인자는 수행하는 데에 필요한 인자, progress는 UI쓰레드로 결과를 보낼 것 (progress진행상태 업데이트를 위해) result는 말그대로 수행 후 리턴되는 결과 ex) class MyAsyncTask(context: MainActivity) : AsyncTask() { onPreExecute() : 태스크 실행 전 set up하는 부분 doInBackGround() : 백그라운드에서 동작하는 main 부분 onProgressUpdate() : progress bar등등.. onPostExecute() : doInBackGround()에..