분류 전체보기 (153) 썸네일형 리스트형 [안드로이드] 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.. Kotlin 문법 (2) 데이터 클래스(Data class) 사용하기 Data Class Kotlin은 기존의 Java Data class보다 손쉽게 Data class를 정의할 수 있습니다. public class User{ String name; int age; @Override public String toString(){ return ".. ..."; } public String getNaume(){ return name; } public void setName(String name){ this.name = name; } } Java에서는 위처럼 toString, equals, setter,getter 메서드를 직접 구현해야합니다. 하지만 코틀린에서는 밑의 한줄의 코드로 Data class를 정의할 수 있고, equals()/hashCode(), toString().. Kotlin 문법 (1) 변수/함수 선언하기, Nullable/Non-Null 변수 var 일반 변수 val 읽기만 가능한 final 변수 val 변수는 읽기만 가능하여 오직 한번만 값이 할당될 수 있습니다. val a: Int = 1 // immediate assignment val b = 2 // `Int` type is inferred val c: Int // Type required when no initializer is provided c = 3 // deferred assignment 데이터 타입을 정하지 않고 정의할 수도 있습니다. 데이터 타입이 자동으로 정해집니다. var x = 5 // `Int` type is inferred x += 1 Nullable/Non-Null 또한 리턴타입이나 변수가 Nullable 인지, Non-Null인지도 구별할 수 있습니다. 위.. [안드로이드] 둥근 테두리 Custom Dialog(커스텀 다이얼로그) 만들기 dialog_background_round.xml 둥근 round 모양 테두리 custom dialog를 만들기 위한 background layout custom_dialog.xml CustomDialog.java public class CustomDialog extends Dialog { private EditText et_text; private Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.custom_dialog); // 다이얼로그의 배경을 투명으로 만든다. Objects.requireNonNu.. Kotlin 시작하기 ― 설정, Basic 문법 Kotlin을 시작해봅시다! Kotlin을 시작하는 방법엔 두가지가 있는데요. 기존의 자바 프로젝트일 경우 gradle파일 수정 코틀린 프로젝트 시작 자바 프로젝트일 경우, gradle파일에 kotlin을 추가해줍시다. build.gradle(Project: ...) // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.3.61' //추가 repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.3'.. [안드로이드] 뒤로(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.. [안드로이드/Java] AsyncTask 화면 넘김시 중단하는 법, http 요청 중단하는 법 http요청을 AsyncTask를 이용해 구현했는데요, 프래그먼트가 넘어갈때 요청을 중단하고 싶어서 cancle(true)를 사용했습니다. AsyncTask의 변수를 멤버변수로 두고, onStop()에서 cancle을 하여 진행중인 AsyncTask를 종료하려고 하였죠. @Override public void onStop() { super.onStop(); if(networkTask!=null) networkTask.cancel(true); } 그런데 한번에 해결될 일은 없죠 ㅎㅎㅎ 이것만으로는 중단이 안되더군요. 이유는 canel을 하면 onPostExecute로 넘어가지 않는것 뿐이고, doInBackGround는 전부 동작한다는 것. 또한 http요청은 계속 진행중이라는 것. 두가지 문제를 해결해야.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음