본문 바로가기

728x90
반응형

Android/Function

(29)
[안드로이드] 데이터 바인딩으로 EditText의 Text를 onClick 함수 parameter로 가져오기 Edit Text onClick onClikc 메서드 안에 파라미터로 searchText.getText().toString() 을 넣어줍니다. EditText의 id search_text의 카멜 표기법으로 searchText로 적었고 getText()를 통해 layout에서 EditText의 내용을 가져올 수 있습니다. onClick 메서드 fun onClickSearch(searchTxt: String){ setQuery(searchTxt) Log.d("TEST", "Search $searchTxt") }
[안드로이드] Room 데이터베이스의 검색기능 구현하기 ― Room Fts4 이 글은 Room Database기능을 사용하고 있다고 가정하고, Fts4를 사용하여 DB의 검색기능을 사용하는 예제입니다. Room과 LiveData를 MVVM패턴으로 구현한 예제는 다음글을 참고하세요 [Android/이론] - MVVM 시작하기(1) ― LiveData, Room을 MVVM패턴으로 사용해보자 [Android/이론] - MVVM 시작하기(2) ― Room Entity, Dao, Database 만들기 [Android/이론] - MVVM 시작하기(3) ― ViewModel, 데이터 바인딩(Data Binding) [Android/이론] - MVVM 시작하기(4) ― Repository, Model-View 연동 먼저, 검색을 대상이 될 기존의 Entity는 다음과 같습니다. @Entity..
by viewModels() 사용하는 법, by viewModels() 종속성 추가 by viewModels()를 사용하면 ViewModelProvider를 사용하지 않고 viewmodel을 지연 생성할 수 있습니다. private lateinit var viewModel: MyViewModel ... viewModel = ViewModelProvider(this).get(MyViewModel::class.java) 위의 코드를 아래 한줄로 사용할 수 있습니다. private val viewModel: MyViewModel by viewModels() by viewModels() 사용하여 ViewModel 생성하기 gradle에 필요한 종속성을 추가해 주어야 합니다. *ViewModel 종속성은 당연히 필요하여 적지 않았음. android { kotlinOptions { jvmTarge..
[안드로이드] application context 어디서나 쉽게 가져오기 ― companion object에서 context 사용 Manifest 추가 android:name=".MyApplication" application에 위의 코드를 추가합니다. ... MyApplication class Java MyApplication.java public class MyApplication extends Application { private static Context context; public void onCreate() { super.onCreate(); MyApplication.context = getApplicationContext(); } public static Context ApplicationContext(){ return MyApplication.context; } } Kotlin MyApplication.kt clas..
[안드로이드] 뒤로(Back) 버튼 클릭 시 프래그먼트(Fragment) / 앱 종료 하기 ― onBackPressedListener 뒤로 버튼을 눌렀을 때, 프래그먼트 라면 실행중인 프래그먼트를 종료하고, 메인 액티비티라면 뒤로버튼을 두번 눌러 어플을 종료해 보겠습니다. onBackPressedListener.java public interface onBackPressedListener { void onBackPressed(); } 먼저, onBackPressedListener 인터페이스를 만들어 줍니다. MainActivity.java private long lastTimeBackPressed; ... @Override public void onBackPressed() { //프래그먼트 onBackPressedListener사용 List fragmentList = getSupportFragmentManager().getFragmen..
[Java/Kotlin] Dynamic Recycler View 구현 & Local Database에 데이터 저장(Room) & LiveData 사용하기. 안녕하세요. 이번 포스트는 아주 유용한 예제일것 같은데요^^ 동적으로 삭제, 추가 가능한 리사이클러 뷰를 구현하면서 리사이클러 뷰의 데이터들이 앱 내 저장 될 수 있는 기능은 거의 필수적이겠죠. 이번 포스팅에서는 동적으로 삭제/추가/편집 가능한 리사이클러 뷰 구현 Room을 사용하여 로컬 데이터 베이스에 데이터 저장 LiveData를 사용하여 DB 데이터 변화 감지하여 UI업데이트 를 한큐에! 해결하는 아주 유용한 예제가 되겠습니다. 동적으로 삭제/추가/편집하는 리사이클러 뷰에 Room과 LiveData를 결합하게 되겠는데요. Room은 SQLite의 추상 레이어를 제공하여 SQLite의 기능을 모두 사용할 수 있고, DB로의 접근을 편하게 도와주는 라이브러리 입니다. SQLite를 직접쓰지않고 Room..
[안드로이드] Open API 사용하기 ― 공공 데이터 XML 파싱하기 안드로이드 앱개발을 하면서 공공 데이터를 사용해아할 때가 있는데요, 날씨나 교통정보등등.. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 위의 링크에 들어가면 공공데이터 api를 사용할 수 있습니다. 현재 인기검색어는 코로나네요 ^^;; Api 활용 신청 저는 미세먼지에 대한 정보를 불러오고 싶으므로 미세먼지를 검색하여 api 신청하겠습니다. 미세먼지를 검색하고 밑으로 내려 한국환경공단_미세먼지 경보 발령 현황을 클릭해보겠습니다. 활용 신청 누르기 전에 밑의 참고 문서도 꼭 받아줍니다. 사용법이 나와있으니까요~ 간단..
InputStream 2번 이상 읽기 InputStream에 저장된 byte를 한번은 String으로, 한번은 image로 읽고 싶어 mark(), reset()을 활용했습니다. //InputStream에서 nSize만큼 읽어 bis buffer에 저장한다. BufferedInputStream bis = new BufferedInputStream(yourInputStream, nSize); bis.mark(nSize); //위치를 mark한다. BufferedReader reader = new BufferedReader(new InputStreamReader(bis, "UTF-8")); String str = reader.readLine(); // String으로 읽는다. bis.reset(); //위치를 mark한곳으로 다시 이동 imgB..

728x90
반응형