본문 바로가기
반응형

전체 글147

[Android] SharedPreferences를 이용해서 임시 데이터 저장하기 앱을 작성하다보면 굳이 DB까지 사용할 정도로 데이터 양이 많지는 않지만 앱이 종료 되어도 값이 저장이 될 경우가 필요한 시나리오가 있다. (예를 들면, switch를 이용한 값을 변경했을 때 다시 앱을 실행해도 그 값이 그대로 적용이 되어야 하는 경우) EditCtrl을 하나 만들어서 거기에 입력된 값이 앱이 종료 후 재실행 되어도 그대로 저장이 되어 있도록 구현해 보자. UI 상으로는 입력된 값이 EditCtrl에 그대로 남아 있는 것처럼 보이지만 사실은 앱이 종료될 때 SharedPreferences에 저장을 했다가 재실행 될때 그 값을 읽어서 다시 EditCtrl에 뿌려주는 것이다. 1. activity_main.xml에 EditCtrl 생성 2. MainActivity 설정 package com.. 2023. 10. 2.
[Android] ListView 구성하기 안드로이드로 테스트 앱을 만들 때 가장 많이 사용하는 듯. 화면의 리스트를 구성하고 그 리스트를 누르면 테스트할 기능이 실행되는 형태이다. 1. Layout 구성 LinearLayout을 vertical로 설정하고 그 아래에 ListView를 구성했다. 2. MainActivity.java 설정 package com.example.listexample01; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; pub.. 2023. 10. 1.
[Android] ImageView를 누르면 Toast 메시지 띄우기 간단한 예제이다. 화면에 이미지를 표시하고, 그 이미지를 선택(터치, 클릭)하면 간단한 토스트 메시지를 띄우도록 한다. 1. Layout 구성 이미지의 정렬(gravity 속성)을 사용하기 위해 LinearLayout으로 ImageView를 둘러싸 주었다. 2. 이미지를 누르면 토스트를 띄우는 코드 package com.example.edittext; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.provider.ContactsContract; import android.view.View; import android.widget.Button; import android.widget.EditT.. 2023. 10. 1.
[Android] Intent로 다른 Activity 호출하기 액티비티에서 버튼이나 메뉴를 누르면 다른 액티비티를 호출해서 이동해야 하는 경우가 있다. 안드로이드 앱을 개발하다보면 상당히 자주 사용해야 하는 기법이다. 1. 부모 액티비티의 layout을 입력창과 버튼으로 구성한다. 2. MainActivity.java에 EditText와 Button을 연결해준다. package com.example.intentexample; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText;.. 2023. 9. 30.
[Android] android gradle plugin requires java 17 to run. you are currently using java 13 Android Studio Flamingo 버전을 다운로드 받아서 앱을 하나 빌드 하려고 했더니 제목처럼 gradle plugin이 java 17 버전이 필요하다고 에러가 발생했다. 안드로이드 스튜디오를 새로 설치할 때마다 환경 세팅 관련해서 여러가지 문제들이 항상 발생을 하는 것 같다. Build file 'D:\Workspace_Android\EditText2\app\build.gradle' line: 2 An exception occurred applying plugin request [id: 'com.android.application'] > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requ.. 2023. 9. 30.
구글 애드센스 앵커, 사이드 레일 광고 제거하기 언제부터인가 나의 티스토리 블로그에 옆에서, 아래에서 광고창이 튀어나오기 시작했다. 티스토리 블로그관리 페이지에서 광고 설정을 조절했지만 소용이 없었다. 알고봤더니 구글 애드센스 페이지에서 조절을 해야 하는 것이었다. 구글 애드센스 사이트에 접속을 해서 광고 -> 연필 모양을 클릭한다. 1. 오버레이 형식 일단 가장 보기 싫은 "사이드 레일 광고"를 해제를 하고, 데스트톱에서는 앵커 광고를 게재하지 않음으로 선택했다. 2. 인페이지 형식 멀티플렉스 광고를 선택해줬다. * 티스토리 블로그의 광고 설정 모두 ON을 시켜줬다. 이렇게 세팅을 해놓고 반응을 좀 보면서 조정을 해줘야 겠다. 2023. 7. 20.
[Android] AOSP 소스 다운로드 및 Emulator 빌드방법 * AOSP 소스코드 다운로드 받기 1. Manifest의 URL 지정 $ repo init -u https://android.googlesource.com/platform/manifest 2. 마스터 분기 지정 $ repo init -u https://android.googlesource.com/platform/manifest -b android-12.1.0_r27 - android 12 가장 마지막 tag로 받기 ※ AOSP tag 정보 https://source.android.google.cn/docs/setup/about/build-numbers?hl=ko#source-code-tags-and-builds 2023. 7. 12.
[백준] 11497번 - 통나문 건너뛰기(Java)(○) https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 1. 오름차순 정렬을 한다. 2. 가장 큰 기둥을 중간에 배치하고 그 다음 큰 기둥은 오른쪽에, 그 다음 큰 기둥은 왼쪽에 배치한다. 3. 이런 식으로 마지막까지 배치를 완료한다. 4. ArrayList A는 오른쪽에 배치하는 기둥을 넣고, ArrayList B는 왼쪽으로 배치하는 기둥을 넣도록 한다. 5. 가장 큰 수는 A와 B 모두 집어넣는다. 6. 그 다음 수부터 번갈아가면서 A, B에 집.. 2023. 5. 31.
[백준] 1946번 - 신입사원 (Java)(○) https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net [문제접근] 입력값이 점수가 아니라 순위라는 것을 이해하지 못해서 한참을 헤맸다. 먼저 직원을 선발하지 않는 조건을 잘 살펴보자. * 선발하지 않는 조건 1. 서류순위와 면접순위가 더 높은 지원자가 있다면 그 지원자는 떨어진다. 2. 서류순위를 기준으로 오름차순 정렬을 하면, 자기보다 서류순위가 떨어지는 사람들은 비교할 필요가 없다. 3. 나보다 서류순위가 높음 지원자의 면접.. 2023. 5. 30.
반응형