전체 글 231

레이아웃을 이미지로 변경하고 pdf로도 저장하기

https://kwon8999.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83-PDF-%EB%B3%80%ED%99%98 안드로이드 레이아웃 PDF 변환 안드로이드 레이아웃 PDF파일로 변환 방법입니다. itextpdf 라는 라이브러리를 이용하여 간단하게 변환 시킬것입니다. 기본적으로 돌아가는 구조는 현재 레이아웃을 jpg 이미지로 변환하여 저장한 kwon8999.tistory.com 권한 필요

Android 2021.05.13

람다식에서 return 사용하기

코틀린은 함수형 프로그래밍을 지원하기 때문에 익명함수, 람다식을 사용할 경우가 흔하다. map, filter, reduce, forEach등 함수를 인자로 받는 함수들(고차함수)의 매개변수로 우리만의 로직이 담긴 함수를 넘길때 람다를 자주 사용한다. 자주 사용하는 만큼 꼭 집고 넘어가야할 사항이 있다. 일반 함수를 넘겼을 때 (return에 주목하자) 일반적으로 함수 내부의 return은 그 함수만 종료시킨다. 물론 코틀린의 label을 사용해서 종료시킬 함수를 지정할 수 있지만 그렇지 않은 경우 return문을 포함하는 가장 가까운 함수를 종료시키게 된다. 우선 람다식이 아니라 일반적인 익명 함수를 넣은 예시를 보자. fun exampleFunc() { var ints = listOf(0,1,2,3) ..

Kotlin 2021.05.02

Java Kotlin 차이점

Kotlin vs. Java 비교하기 Android 개발에 있어서 Java 언어보다 kotlin 언어를 많이 사용하는 추세입니다. 물론 아직도 Java를 많이 사용하고 있지만 구글에서도 Kotlin을 제 1언어로 채택하고 앞으로의 컴포넌트나 라이브러리들도 Kotlin으로 개발된다고 하니 안드로이드 개발자들은 Kotlin을 안 할 이유가 없어보입니다. 그래서 코드 사용에 있어서 Java와 Kotlin을 비교해보도록 하겠습니다. 비교 순서는 변수/상수, view 사용, Null 안정성, 객체 초기화, Data Class 순으로 알아보도록 하겠습니다. 1. 변수/상수 Java String strVar = ""; // 변수 final String strVal = ""; // 상수 - 변수 : final을 사용하..

Kotlin 2021.05.01

안드로이드 라이프사이클(android lifecycle)

생명주기(Lifecycle) 액티비티 생명주기란 액티비티가 생성되고, 정지되고, 재생되고, 종료되는 등의 상태 변화와 그에 따른 콜백 메서드를 총칭한다. 안드로이드 개발자라면 액티비티의 생명주기를 알아야한다. 안드로이드를 처음 공부하면, Activity를 생성하고 layout과 연결하는 작업부터 시작하기 마련이다. 화면 단위에 해당하는 Activity들은 생성되고, 파괴되고, 다른 Activity에 가려지기도 한다. 간단한 화면 하나를 구현하는 작업이라면 이러한 Activity의 생명주기에 대해서 자세히 알지 못해도 별다른 문제가 없다. 하지만 백그라운드에서 어떤 다운로드 작업이 진행되고 있다고 생각해 보자. 다운로드 도중에 Activity가 갑자기 종료된다면? 이 작업은 화면과 관련 없이 돌아가고 있기..

Android 2021.05.01

코틀린 프래그먼트 데이터 전달

출처 : magicalcode.tistory.com/40 프래그먼트(Fragment) 는 하나의 액티비티에 각 화면을 분할, 독립적인 코드로 구성하는 것을 말합니다. 그래서 액티비티와 프래그먼트, 프래그먼트와 또 다른 프래그먼트끼리 통신을 할 필요가 있습니다. 어떻게 할 수 있을까요? 바로 시작합니다! 액티비티 프래그먼트 A프래그먼트 액티비티 B프래그먼트 데이터 전달하기 1. 프래그먼트 띄우기 데이터를 전달하기 위해서 간단한 앱을 만들겠습니다. 이미 구성하신 분들은 2번부터 봐주세요~ 아래와 같이 프래그먼트 클래스 및 .xml 를 먼저 만들어주세요. 그리고 각각의 레이아웃을 만들어 주시는데요. 저는 간단히 영화 포스터를 보여주고 버튼을 누르면 상세화면으로 바뀌도록 구성했습..

Android 2021.04.25

코틀린 커스텀 다이얼로그

1. 커스텀 다이얼로그(Custom Dialog)로 사용할 코틀린 클래스 만들기 먼저 커스텀 다이얼로그(Custom Dialog)가 될 코틀린 클래스를 아래처럼 만들어 줍니다. class CustomDialog(context: Context) { private val dialog = Dialog(context) fun myDig() { dialog.show() } } ① 파라미터로 액티비티의 Context 를 전달 받습니다. 다이얼로그(Dialog)가 어떤 액티비티에서 나와야하는지 알려줘야하기 때문이죠. ②, 다이얼로그(Dialog) 에 context 를 넘겨 줍니다. 이제 액티비티에서 이 다이얼로그(Dialog) 를 호출하기 위해서는 ③ 함수를 호출 하면 됩니다. 하지만 이 상태로는 화면엔 아무것도 나..

Kotlin 2021.04.25

커스텀 객체를 sharedpreferences 에 저장하고 불러오기

1. String 형식으로 저장 할때 public void setStringArrayPref(Context context, String key, ArrayList values) { SharedPreferences prefs = context.getSharedPreferences("key", MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); JSONArray a = new JSONArray(); for (int i = 0; i < values.size(); i++) { a.put(values.get(i)); } if (!values.isEmpty()) { editor.putString(key, a.toString()); } else { edit..

Android 2021.04.16

JAVA 시간 차이 계산하기

가끔 코드를 짜다보면 시간과 시간사이의 차이를 구해야할때가 종종 있다. 어렵지는 않지만 할때마다 찾아보면서 만들어서 기록해둔다. 첫번째 방법 //요청시간 String String reqDateStr = "202104100830"; //현재시간 Date Date curDate = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYYMMddHHmm"); //요청시간을 Date로 parsing 후 time가져오기 Date reqDate = dateFormat.parse(reqDateStr); long reqDateTime = reqDate.getTime(); //현재시간을 요청시간의 형태로 format 후 time 가져오기 curDate =..

Java 2021.04.10

Mysql sql 기본 쿼리문 (insert , select , update, delete)

1. INSERT 데이터(레코드)를 삽입하는 명령어입니다. INSERT INTO 테이블명(name, profile ,date) (1) VALUES ("영재", "학사", Now()); (2) (1) NULL이나 DEFAULT로 설정된 컬럼도 존재하기 때문에, 데이터를 삽입할 부분만을 매개변수로 넘겨줍니다. (2) VALUES는 실제로 삽입할 데이터를 기입합니다. Now()는 현재 시간을 반환하는 함수입니다. ​ 2. UPDATE 데이터(레코드)를 변경하는 명령어입니다. UPDATE 테이블명 SET 수정되어야 할 컬럼명 = 수정되기를 원하는 새로운 값; [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] (1) WHERE은 변경되기 원하는 레코드만을 고르기..

DB 2021.04.04