본문 바로가기

728x90
반응형
SMALL

분류 전체보기

(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요청은 계속 진행중이라는 것. 두가지 문제를 해결해야..

728x90
반응형
LIST