반응형

전체 글 56

[Android Studio] DB 보기

작업을 하다보면 내가 의도한 것과 다르게 데이터가 저장될 때가 있다. 직접 DB를 까서 보면 어떤 값이 RETURN 되는지 명확하게 볼 수 있다.물론킹갓제너럴 room을 쓴다면 인스펙터에서 테이블과 라이브로 데이터 변경을 확인할 수 있지만..개틀딱 코드기 때문에 어쩔 수 없다 ㅋ 1. 해당 프로그램을 다운 받는다.https://sqlitebrowser.org/ DB Browser for SQLiteDB Browser for SQLite DB Browser for SQLite (DB4S) is a high quality, visual, open source tool designed for people who want to create, search, and edit SQLite or SQLCipher da..

Android 2024.10.18

[삽질][Android] 동적 Dialog Fragment 사용하기(feat. Java)

버튼을 누르면 화면이 커지고 또 버튼을 누르면 화면이 작아지는 동적 Dialog를 사용하게 되었다. 이 과정에서 분명 wrap_content로 layout을 감쌌는데 동적으로 화면이 변하지 않는 현상이 발생했다.그래서 minwidth, minheight도 사용해 보고 별 짓을 다해봤는데, 계속해서 gone 상태에서 visible로 변할 때, 화면이 커지지 않고 컨텐츠들이 잘려서 나왔다. dialog Fragment는 기존 Fragment와는 다르게 넓이와 높이를 지정하는데 주의를 기울여야한다. 젤 상단 부모 layout을 wrap_content, wrap_content 로 설정 했을 때 문제가 있었다.이 경우에 match_parent, match_parent 로 변경 한 뒤에 Fragment로 가서 아래..

Android 2024.10.14

[삽질][Android] 안드로이드 분할 화면 오류(feat. Kotlin)

kotlin.UninitializedPropertyAccessException: lateinit property binding has not been initializedjava.lang.NullPointerException.ui.main.MainFragment.getBinding$app_debug(MainFragment.kt:102) 평소에 잘되던 기능이 분할화면에서 갑자기 앱이 강제 종료 되는 경우가 있다.(위에 꺼 아니면 아래 오류가 뜸) https://developer.android.com/develop/ui/compose/layouts/adaptive/support-multi-window-mode?hl=ko#lifecycle 멀티 윈도우 모드 지원  |  Jetpack Compose  |  An..

Android 2024.10.07

Handler(feat. Message Queue)

핸들러(Handler)는 특정 이벤트나 상황이 발생했을 때, 그에 대한 특정 작업을 수행하도록 미리 작성된 코드이다.  이해하기 쉽게 설명하자면, 아침에 일어날 때 알람을 맞춰논다. 알람을 맞춘 시간이 되면 알람이 울리면서 일어나게 되는데, 이때 '알람 소리가 울리는 시간'이 이벤트고, 알람이 울리는 그 순간에 '알림음이 울림' 이 핸들러다. 즉, 어떤 일이 벌어질 때, 그에 맞는 행동을 하도록 미리 정해놓은 코드를 핸들러라고 할 수 있다.  메세지 큐(Message Queue): 비동기 통신을 위한 데이터 구조로, 프로세스 간 또는 앱 간에 메세지를 안전하게 전송하고 처리할 수 있도록 돕는 시스템이다. - 메세지 큐를 사용하면 작업을 비동기적으로 처리할 수 있어 UI 스레드의 차단을 방지할 수 있다.-..

Android 2024.09.30

순차 처리 VS 병렬 처리 (동기적 실행 VS 순차적 실행 / 비동기적 실행 VS 병렬 실행)

순차 처리(sequential processing)와 병렬 처리(parallel processing)는 데이터나 작업을 처리하는 두 가지 기본적인 방식이다.  1. 순차 처리(Sequential Processing): 순차 처리는 작업이나 데이터가 순서대로 하나씩 처리되는 방식이다. 각 작업이 완료되어야 다음 작업이 실행된다.  1-1. 순차 처리의 특징 :- 단일 흐름 : 하나의 작업이 끝나야 다음 작업이 시작되므로, 단일 흐름으로 진행된다. - 블로킹 : 이전 작업이 완료될 때까지 다음 작업이 대기하므로, 블로킹이 발생한다. - 단순성 : 구현이 간단하므로, 코드가 직관적이다. - 메모리 사용 : 메모리 관리가 상대적으로 간단하다.  1-2. 순차 처리의 장점과 단점 - 코드가 직관적이고 이해하기 쉽..

Java 2024.09.30

Collection 함수

Data Class vs Enum Class Data Class는 데이터를 보유하기 위한 클래스로, 주로 데이터의 저장과 접근을 위한 메서드를 가지고 있다. Enum Class는 상수의 집합을 정의하기 위한 클래스로, 열거형 상수의 정의와 관련된 메서드를 포함할 수 있다. 주요 차이점은 Data Class가 일반적으로 데이터를 표현하고 처리하는 데 사용되는 반면, Enum Class는 상수의 집합을 정의하는 데 사용된다. Collection 함수 (ex List, …) Collection 함수는 컬렉션을 조작하고 변환하는 함수를 제공하는 함수형 프로그래밍에서 사용되는 개념이다.대표적인 Collection 함수로는 map(), filter(), reduce() 등이 있다. map()// 리스트의 각 요소를..

Kotlin 2024.09.18

Android Webview에서 Json가져오고 사용하기(feat.Gson)

웹뷰에서 데이터 던져주면 앱으로 받고 프린터를 출력하는 작업을 하고 있따.  일단 웹뷰를 xml에 넣고 웹뷰가 있는 화면에 binding.webView.addJavascriptInterface(WebHanto(), "android")) 를 써줘야 한다.. Android의 WebView에서 JavaScript와 Android 코드 간의 상호작용을 가능하게 하는 메서드이다.이 코드의 역할은 다음과 같다.JavaScript와의 연결: WebBridge()라는 객체를 JavaScript에서 사용할 수 있도록 WebView에 추가한다. 이 객체는 JavaScript에서 호출할 수 있는 메서드를 정의할 수 있다.이름 지정: "android"라는 이름을 통해 JavaScript에서 이 객체를 참조할 수 있게 된다. ..

Android 2024.09.03

Java 패키지

Java 패키지: 자바에서 관련된 클래스들을 그룹화하는 방법이다. 파일 시스템의 폴더와 유사하게 작동하여, 클래스를 논리적으로 정리하고 관리할 수 있도록 도와준다.  예를 들어 우리가 일상에서 사용하는 물건들을 정리할 때, 같은 종류의 물건들을 모아서 상자에 담거나 서랍에 넣는 것처럼 자바에서도 비슷한 방식으로 클래스를 정리한다. 패키지를 사용하는 주된 목적은 대규모 프로젝트에서 클래스를 주제별로 정리하여 코드의 가독성을 높이고 유지보수를 용이하게 하는 것이다. 예를 들어, java.utils.Date와 java.sql.Date는 서로 다른 패키지에 속해 동일한 이름을 가질 수 있다. 코드가 복잡해질수록 패키지를 통해 관련 클래스들을 그룹화함으로써 관리가 용이해지며, 기능별로 클래스를 나누어 모듈화할 수..

Java 2024.08.27

Java 오버로딩 & 오버라이딩

오버로딩(Overloading): 동일한 이름의 메서드를 여러개 정의하되,  매개변수의 타입이나 개수, 순서를 다르게 설정하는 것을 말한다. 같은 클래스 내에서 사용할 수 있다는 특징이 있다. 같은 기능을 수행하지만, 다양한 입력을 처리할 수 있다.  class MathUtils { int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } int add(int a, int b, int c) { return a + b + c; }} 오버라이딩(Overriding): 오버라이딩은 자식 클래스에서 부모 클래스의 메서드를 재정의하는 것이다. ..

Java 2024.08.27

Android Progressbar 사용하기

webView를 사용 중인데 앱이 시작되고 url을 로딩하는데까지 상당한 시간이 소요된다. 성질 급한 한국인은 이런거 절대 못참음..하지만 프로그래스바와 함께라면...?일단 화면에 뭐라도 돌아가니깐 기다리게 된다.. 바로 코드로 보자 activity_main.xml />여기서 중요한건 android:elevation="8dp" 이다. 분명 프로그래스 바를 설정했는데 자꾸 안보여서 보니깐 웹뷰 뒤에 프로그래스 바가 있었다.. ㅡ,.ㅡ;; elevation 값을 설정하니 웹뷰 위로 예쁘게 나오는 모습style 값은 안드로이드에서 지원해주는 것 같다. 저 스타일은 무난한 동글뱅이 스타일이다.  class MainActivity : AppCompatActivity() { private ..

Android 2024.08.26