no image
도전!14 - 쇼핑 상품 화면 구성하기
격자 형태로 쇼핑 상품을 보여주는 화면을 구성할 것이다. 상품을 클릭하면 해당 상품의 정보가 토스트 메시지로 나타난다. 1️⃣ xml 파일 만들기🔸activity_main.xml 코드🔸더보기 🔸shopping_item.xml 코드🔸더보기 2️⃣ 아이템의 정보가 담길 클래스 만들기쇼핑 상품의 정보는 4가지이다. 상품명(name), 상품가격(price), 상품설명(description), 상품이미지(image)여기서 상품이미지는 resId를 가져오는 것이므로, int형으로 선언한다. (나머지는 String 형)🔸ShoppingItem.java🔸더보기생성자를 만든 뒤 getter and setter로 각 상품정보의 get, set 메서드를..
18:18:31
no image
도전!13 - 리싸이클러뷰에 고객 정보 추가하기
전에 했던 리싸이클러뷰랑 거의 동일하다. 7장 - 리싸이클러뷰선택 위젯(Selection Widget) :여러 개의 아이템 중에 하나를 선택할 수 있는 리스트 모양의 위젯. 어댑터(Adapter) 패턴을 사용한다.  위젯은 각 아이템을 보여주기만 할 뿐이다. 각 아이템을 위한 뷰sand-to-desert.tistory.com ⭐1. activity_main.xml⭐은근 이거 배치하는 게 까다로웠다. (생각보다 귀찮..)특히 리싸이클러뷰 주위에 검은 테두리를 넣고 싶어서 처음엔 리싸이클러뷰에다가 바로 background로 내가 만든 drawable 레이아웃을 적용시켰는데, 이러면 리싸이클러뷰가 살짝 튀어나온다.해결 : 레이아웃 안에 리싸이클러뷰를 넣고, 레이아웃에다가 drawable 레이아웃을 적용시킴. ..
2025.01.15
no image
7장 - 스피너🔻
스피너(Spinner) : 여러 아이템 중에서 하나를 선택하는 위젯. 윈도우에서는 콤보박스🔻라고 불림. 1. activity_main.xml 2. MainActivity.javapackage com.example.chapter7_5;public class MainActivity extends AppCompatActivity { TextView textView; String[] items = { "Amy", "Sheldon", "Penny", "Howard", "Leonard", "Raj"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ..
2025.01.14
no image
7장 - 리싸이클러뷰
선택 위젯(Selection Widget) :여러 개의 아이템 중에 하나를 선택할 수 있는 리스트 모양의 위젯. 어댑터(Adapter) 패턴을 사용한다.  위젯은 각 아이템을 보여주기만 할 뿐이다. 각 아이템을 위한 뷰는 어댑터가 만든다. 어댑터에서 반환되는 객체는 컨테이너 객체이다.리싸이클러뷰(RecyclerView) : 기본적으로는 상하 스크롤이며 좌우 스크롤도 가능하다. 캐시(Cache) 메커니즘이 구현되어있음(메모리를 효율적으로 사용할 수 있도록) 리싸이클러뷰 = 껍데기 / 어댑터 = 숙주(?) 같은 느낌으로 이해하면 된다. 예제 2개를 진행할 것이다.⭐1. activity_main.xml ⭐코드더보기  리싸이클러뷰의 id를 설정해준다.⭐2. 새로운 클래스 만들기 (Person.java)⭐더..
2025.01.14
no image
7장 - 나인패치, 카드뷰, 새로운 뷰 만들기
이미지가 나타나는 영역보다 원본 이미지가 작으면 시스템이 이미지 크기를 자동으로 늘려준다. 이 과정에서 왜곡이 발생하는데, 이 왜곡을 해결하는 방법을 나인패치라고 한다. 나인(nine)패치 이미지는 파일 확장자 앞에 '.9'가 붙어야 한다. (ex. ABC.9.png) 아래 레포지토리에 들어가서 button_image 파일 2개를 다운받는다. DoItAndroidRev7/part2/chapter07/SampleNinePatch/app/src/main/res/drawable at master · mike-jung/DoItAndroidRev7Do it! 안드로이드 앱 프로그래밍(개정7판)의 소스 코드. Contribute to mike-jung/DoItAndroidRev7 development by crea..
2025.01.11
no image
도전!12 - 서비스에서 수신자로 메시지 보내기
도전11과 비슷하다. 액티비티에 글자 입력 -> 서비스로 데이터 전송 -> 서비스에서 브로드캐스트 수신자로 데이터 전송 -> 액티비티에 글자 출력 activity_main.xml은 동일하다. 1. MainActivity.javapackage com.example.doitmission12;public class MainActivity extends AppCompatActivity { EditText inputText; TextView outputText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R...
2025.01.10
no image
도전!11 - 서비스 실행하고 화면에 보여주기
그렇게 어렵진 않았다. 전에 했던 거 그대로 따라함. 6장 - 서비스백그라운드 : 화면 뒤의 공간서비스 : 백그라운드에서 실행되는 앱의 구성 요소 (앱의 구성요소이기 때문에 시스템에서 관리됨.)서비스는 비정상적으로 종료되더라도 시스템이 자동으로 재실행sand-to-desert.tistory.com  1. activity_main.xml  2. MainActivity.javapackage com.example.doitmission_11;public class MainActivity extends AppCompatActivity { EditText inputText; TextView outputText; @Override protected void onCreate(Bundle saved..
2025.01.10
no image
리소스&매니패스트&그래들 이해하기
안드로이드 앱은 크게 자바 코드와 리소스(res; resource)로 구성된다. 두 개로 나누면 이해하기 쉽고 유지관리가 용이하다. 매니패스트 : 앱이 실행되기 전에 시스템이 알아야 할 내용들을 정의한다.더보기[ 매니패스트 파일에 들어갈 수 있는 태그 항목 ]이 중 , , , 와 같은 태그들은 앱 구성요소를 등록하기 위해 사용됨.리소스의 사용리소스가 갱신되면 그 때마다 리소스의 정보가 R.java 파일에 자동으로 기록되며, 그 정보는 리소스에 대한 내부적인 포인터 정보가 된다. res 폴더와 assets 폴더의 차이점애셋 : 용량이 큰 데이터를 의미함(ex. 동영상, 웹페이지). 빌드되지 않음.리소스 : 빌드되어 설치파일에 추가됨. res/values 폴더 : 문자열이나 기타 기본 데이터 타입에 해당하는..
2025.01.09
no image
6장 - 위험 권한 부여하기
마시멜로(API23)부터 권한이 2가지로 분류됨.일반 권한 : 앱을 설치할 때 부여됨.위험 권한 : 앱 실행 시 사용자에게 권한을 부여할 지 물어보고 부여됨. (ex. 위치, 카메라, 마이크, 연락처, 전화, 문자, 일정, 센서 등)더보기위험권한의 종류LOCATION(위치) : ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATIONCAMERA : CAMERAMICROPHONE : RECORD_AUDIOCONTACTS : READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTSPHONE : READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG, WRITE_CALL_LOG, USE_SIP, ADD_VOICEMAIL, PROCESS_OUT..
2025.01.08