-
Contact App : AlertDialog, RecyclerView, Adapter...2023.07.12
app / res / layout / activity_main.xml app / res / layout / contact_row.xml app / java / com.bpdev.simplecontacts / MainActivity.java package com.bpdev.simplecontacts; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import android.view.View; import android.widget...
SimpleMemo App : RecyclerView, Adapter, ViewHolder2023.07.12app / res / layout / activity_main.xml app / res / layout / memo_row.xml app / java / com.bpdev.simplememo / MainActivity.java app / java / com.bpdev.simplememo/ model / MemoAdapter.java app / java / com.bpdev.simplememo / adapter / Memo.java app / res / layout / activity_main.xml 빨간 전구 누르고 추천 선택하면 생성자 만들어줌. 자동생성 app / java / com.bpdev.simplememo / MainActivity.java package com.bpdev.simplememo;..
SharedPreferences class 앱 파일 저장소 사용하기2023.07.11마지막 페이지인 WelcomeActivity에서 e-mail 정보를 받아오는 방법 2번이다. 포인트는 SharedPreferences 클래스를 이용해서 파일을 생성하고 그곳에 데이터를 저장하여, 필요한 곳에서 저장소를 불러와서 데이터를 사용하는 것. 파일은 앱을 삭제하면 사라진다. MainActivity.java package com.bpdev.register; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.V..
Register : intent putExtra()/getExtra() 데이터 전달2023.07.11마지막 페이지인 WelcomeActivity에서 e-mail 정보를 받아오는 방법 1번이다. 포인트는 페이지들의 연결고리인 intent를 이용해서 데이터를 넘겨주고 넘겨주는 것. 징검다리 식. MainActivity.java package com.bpdev.register; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.google.android..
Register2023.07.11MainActivity.java package com.bpdev.register; 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; import com.google.android.material.snackbar.Snackbar; public class MainActivity extends AppCompatActivity { EditText editEmail; EditText editPassword1; EditTe..
LifeCycle2023.07.11MainActivity.java package com.bpdev.lifecycle; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util..
Activity Life Cycle, 1. 두 개의 Activity 연결과 실행2023.07.10하단의 링크를 보면 활동 수명 주기라고 번역이 되어 나오는데, 화면(xml)과 로직(java등)의 결합체인 Activity의 시작과 끝의 동작 과정을 Activity Life Cycle이라고 한다. 안드로이드 화면에서 앱을 실행시킨 후 back 버튼 누르면 앱이 사라진다. 이런 식의 과정에서 각 함수들이 작동하는 것이다. 안드로이드에서 앱의 실행 버튼을 누르면 가장 먼저 manifests/AndroidManifest.xml에서 설정한 android.intent.action.MAIN이 실행된다. 카카오톡의 경우 로고액션이 들어간 액티비티부터 실행된다고 할 수 있다. 그리고 실행된 앱은 홈버튼을 누르면 잠시 중지(일시중지)되어 있어야 한다. 그리고 다른 앱을 실행시키거나 다른 페이지로 이동했을 때도 잠시 일..
Alarm : CountDownTimer, MediaPlayer2023.07.10java / com.bpdev.alarm / MainActivity.java package com.bpdev.alarm; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.media.MediaPlayer; import android.os.Bundle; import android.os.CountDownTimer; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.w..
Timer App : CountDownTimer, 동작 중 Tab 숫자 세기2023.07.09MainActivity.java package com.bpdev.timer; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.os.CountDownTimer; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView txtTimer; Te..
Quiz App : ArrayList, 동작 초기화와 AlertDialog, finish();2023.07.09qpp / com.bpdev.quizapp / MainActivity.java package com.bpdev.quizapp; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; import com.bpdev.quiz..
나이 계산 Activity / import java.util.Calendar;2023.07.09MainActivity.java package com.bpdev.cat; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; import java.util.Calendar; public class MainActivity extends AppCompatActivity { EditText editYear; Button b..
퍼센트를 구하는 Calculator activity2023.07.09MainActivity.java package com.bpdev.calculator_khy; import static com.bpdev.calculator_khy.R.id.enterPercent; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; public class M..
UITest1 : 로그인 화면 Activity(xml+java) / Toast, Snackbar2023.07.06app / mainfests / AndroidManifest.xml app / java / com.bpdev.uitest1 / MainActivity.java package com.bpdev.uitest1; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; public c..
DiceApp : 안드로이드 개발 기본 구성2023.07.06안드로이드 개발의 구성요소 화면개발(그림) + 로직개발(동작) 화면개발 : XML 개발 로직개발 : JAVA 개발 개발순서 : 화면개발(XML) - 로직개발(JAVA) : 단위별로 반복한다. 화면-로직 > 화면-로직 > 화면-로직 > ... 하나의 화면과 로직 묶음 => Activity 액티비티 activity를 생성하면 자동으로 xml과 java 두개도 자동으로 셋팅이 된다. 당연히 어느 작동을 하고 싶을 때 어떤 코드를 어느 위치에 넣어야 하는지를 정하고 시작한다. 안드로이드스튜디오는 클라이언트 개발 프로그램이다. 가상환경을 설치해서 돌아가기 때문에 헤비함, 디스크 메모리 cpu 좋은 거 써야 작업이 잘 진행된다. ♠ xml파일 초기 코드는 ConstraintLayout에 담아야 한다. http://..
SDK Software Development Kit (aws)2023.07.06SDK 소프트웨어 개발 키트(SDK)는 개발자를 위한 플랫폼별 구축 도구 세트입니다. 특정 플랫폼, 운영 체제 또는 프로그래밍 언어에서 실행되는 코드를 만들려면 디버거, 컴파일러 및 라이브러리와 같은 구성 요소가 필요합니다. SDK는 소프트웨어를 개발하고 실행하는 데 필요한 모든 것을 한 곳에서 제공합니다. 또한 SDK에는 문서, 튜토리얼 및 가이드와 같은 리소스와 더 빠른 애플리케이션 개발을 위한 API 및 프레임워크가 포함됩니다. SDK를 사용하는 이유 SDK는 개발 프로세스 전반에 걸쳐 개발자가 애플리케이션을 만드는 데 도움이 되는 여러 가지 이점을 제공합니다. 여기에는 다음이 포함됩니다. 효율적인 개발 SDK는 애플리케이션에 통합할 수 있는 사전 빌드된 구성 요소와 라이브러리를 제공하여 개발 효율..
에러 대비 Try catch (+finally), NullPointerException error2023.07.04try ~ catch 프로그램 실행 시 에러가 발생했을 때는 에러 메시지를 캐치해서 클라이언트나 개발자에게 알려줘야 하고, 프로그램이 종료되어도 안된다. 에러가 나도 정상 종료해야 한다. 그러기 위해서 사용하는 것이 Try / catch 구문이다. main/Main.java package main; // 여기 패키지 메인임. import model.Student; // 모델에 있는 스튜던트 데리고 온다. public class Main { public static void main(String[] args) { // cpu 시작 Student s1 = new Student(); // 메모리에 스튜던트 공간 확보한다. s1.name = "홍길동"; System.out.println(s1.name); s1...
import java.util.HashMap 해쉬맵 사용법2023.07.04HashMap HashMap은 파이썬의 딕셔너리와 비슷한 데이터 스트럭쳐로써, key, value 쌍으로 저장한다. 사용하기 위해 페이지 상단에 자바 유틸의 해쉬맵을 import 시킨다. import java.util.HashMap; 그리고 함수 안에 아래 해쉬맵 형식을 적어준다. HashMap phoneMap = new HashMap(); CRUD Create 데이터 저장 위에서 해쉬맵 타입은 String문자로 받기로 했기 때문에 문자로 엄격하게 다뤄줘야 한다. 자바에서는 데이터 타입 맞춰주는 것이 가장 중요한 것 중 하나다. phoneMap.put("model", "iPhone 12"); phoneMap.put("year", "2021"); phoneMap.put("color", "red"); Rea..
import java.util.ArrayList 어레이리스트 사용법2023.07.04Array Java의 기본 함수인 Array 배열은 생성할 때 무조건 갯수를 정해놓고 생성해야 한다. 숫자가 정해져 있는 데이터에만 사용할 수 있다. String[] nameArr = new String[5]; 위의 배열은 정해진 갯수 이상으로는 데이터 추가가 불가능하다. 따라서 갯수 제한없이 마음대로 데이터를 추가할 수 있고, 삭제할 수도 있는 ArrayList를 사용한다. ArrayList 먼저 함수 위에 ArrayList를 자바 유틸에서 불러와서 연결해야 한다. import java.util.ArrayList; 그리고 클래스 함수 안에서 아래 구문으로 빈 리스트를 생성할 수 있다. ArrayList nameList = new ArrayList(); CRUD Create 데이터 넣기. 위의 리스트 생..
JAVA Overriding 오버라이딩 @Override Annotation2023.07.04Overriding 부모 클래스로부터 상속받은 method나 생성자constructor의 내용을 재정의하여 사용하는 것. 자식클래스에서 추가하거나 변경해야 할 내용이 있을 경우, 부모 클래스의 method를 override 한다. 자식 클래스인 Child 클래스에서 Overriding 했다면 해당 부분에 '@Override'라고 표시하여 Annotation 주석처리한다. main/Main.java package main; import model.Child; import model.Parent; public class Main { public static void main(String[] args) { Parent p = new Parent(); // 클래스를 만들어 보자 new p.name = "봄동";..
객체 지향 프로그래밍 OOP 언어 "JAVA 자바"2023.07.04Java | Oracle Java | Oracle 데스크톱 애플리케이션용 Java 얻기 www.java.com 자바 Java 객체 지향 프로그래밍 언어로서 보안성이 뛰어나며 컴파일한 코드는 다른 운영 체제에서 사용할 수 있도록 클래스(class)로 제공된다. 객체 지향 언어인 C++ 언어의 객체 지향적인 장점을 살리면서 분산 환경을 지원하며 더욱 효율적이다. ① 자바는 간단하다 (simple) 하나의 소프트웨어가 제작될 때는 소프트웨어를 제작하는 비용도 많이 들지만 유지 보수하는 비용도 어마어마하다. 자바 언어는 이러한 점을 고려하여 디자인되었다. 자바 언어는 C++를 기반으로 개발되었음에도 C++에서 혼란을 일으키는 부분을 제거했다. 예를 들면 연산자 오버로딩, 다중 상속 같은 것들이다. 그리고 C++..