본문 바로가기

분류 전체보기

(60)
#01. 전화번호부 만들기(Intent, addView) 2021-03-24 안녕하세요:) 주니어 개발자 Hellow:)입니다. 이번에 간단한 전화번호부를 만들면서 기본적인 Intent와 addVIew 사용법을 익혀보려고 합니다. 현재 addView는 사용하지 않고 recyclerView를 사용하는데 학습 목적으로 쉽게 addView를 사용해서 ListView를 만들어보려고 합니다.:) [결과 화면] 전화번호부 리스트 중 목록을 클릭하면 상세페이지가 나오게 합니다 :) [activity_main.xml] [activity_detail_phone_book.xml] [numberlist_view.xml] [MainActivity.kt] package com.hellow.phonebook import android.content.Intent import androidx.appcompa..
#6. 권한 2021-03-18 1.1 권한 명세와 기능 명세 설정 파일에 작성하는 명세에는 권한 명세와 기능 명세 두 가지가 있습니다. 권한 명세는 해당 데이터나 기능의 사용여부를 설정하고, 기능 명세는 해당 기능이 있는 안드로이드폰에서만 내려받을 수 있도록 플레이 스토어에서 내려받는 것을 방지합니다. 권한 명세 권한 명세를 설정하는 AndroidManifest.xml 파일은 [app] - [manifests] 디렉터리 밑에 있습니다. 예시로 와이파이 권한과 인터넷 접근 권한을 부여하는 코드입니다. 기능 명세 권한 이외에도 기능에 대한 명세가 필요할 때가 있는데 기능 명세는 AndroidManifest.xml파일에 따로 추가하지 않아도 해당 기능을 사용할 때 시스템이 자동으로 부여합니다. 이때 사용하는 태그가 태그입니다. 예를 들어 ..
#03-1. 함수와 함수형 프로그래밍 2021-03-17 03-1 함수란? 함수는 여러 값을 입력받아 기능을 수행하고 결괏값을 반환하는 코드의 모음 함수 간결하게 선언 fun sum(a: Int, b: Int): Int { return a + b } fun sum(a: Int, b: Int) = a + b 인자? 매개변수? 매개변수와 인자는 같은 역할을 하는 것처럼 보이기 때문에 같은 것으로 착각하기 쉽지만 이 둘은 명확하게 구분할 수 있는 개념입니다. 함수를 선언할 때는 매개변수라고 부르고 함수를 호출할 때는 인자라고 부릅니다. 즉, sum(a: Int, b: Int) 함수의 선언 부분의 a: Int, b: Int는 매개변수이고 main() 함수에서 sum()함수를 호출할 때 sum(3, 2)에서 3, 2는 인자입니다. 이 인자는 함수 선언 부분에 있는 a와..
#5.5 탭 메뉴로 화면 구성 ViewPager와 TabLayout 2021-03-14 5.1 ViewPager에서 프래그먼트 사용하기 ViewPager와 Adapter 뷰 페이저는 리사이클러뷰와 구현 방식이 비슷한데 한 화면에 하나의 아이템만 보여지는 리사이클러뷰라고 생각하면 됩니다. 페이저어댑터를 통해서 뷰페이저에서 보여질 화면들을 연결하는 구조도 리사이클러뷰와 동일합니다. 1. 뷰페이저 어댑터 생성 합니다. 2. 뷰페이저어댑터를 만듭니다.(뷰페이저에 프래그먼트를 보여주기 위해서) FragmentAdapter 클래스를 생성한 후에 FragmentPagerAdapter를 상속받습니다. class FragmentAdapter : FragmentPagerAdapter { } 3. FragmentPagerAdapter 뒤에서 [Alt+Enter] 클릭 한 후에 파라미터가 2개인 생성자로 선택하..
#5.4 뷰 사용하기 2021-03-13 View는 화면을 구성하는 최소 단위의 컴포넌트라고 할 수 있습니다. 계층 구조로 나타낸다면 앱 > 액티비티 > 뷰그룹 > 뷰로 표시할 수 있습니다. (뷰 : 위젯, 뷰그룹 : 레이아웃이라고 할 수 있습니다. :)) TextView로 예를 들어보면 레이아웃 편집기에 , 같은 태그들은 태그 이름과 동일한 클래스들이 이미 안드로이드에 있습니다. ex) open class TextView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : View(context, attrs, defStyleAttr) { }인데 AttrivuteSet은 텍스트뷰 속성들을 의미하고 open키워드는 상속으로 확장 가능을 의미합니다. 또한 View클래스를 상속하기에 View를..
#5-3. 프래그먼트 2021-03-12 3. 액티비티의 조각 프래그먼트 다루기 화면을 분할해서 독립적인 코드로 구성할 수 있게 도와주는 것이 프래그먼트(Fragment) 입니다. 가령 프래그먼트는 서로 다른 크기의 화면을 가진 기기(태블릿, 스마트폰 등)에서 하나의 액티비티로 서로 다른 레이아웃을 구성할 수 있도록 설계되었습니다. 목록 프래그먼트와 상세 프래그먼트가 있을 때 태블릿과 같은 큰 화면에서는 두 프래그먼트를 한 화면에 표시하고, 스마트폰처럼 작은 화면에서는 먼저 목록 프래그먼트만 표시한 후 목록을 클랙하면 상세가 나타나는 구조입니다. 프래그먼트를 활용한 구조 한 번에 1개의 프래그먼트가 화면에 나타나는 형태는 프래그먼트 여러 개를 미리 만들어두고 탭 메뉴나 스와이프(Swipe)로 화면 간 이동을 할 때 사용됩니다. 한 번에 여러 개..
#5-2. 컨테이너 2021-03-12 2. 컨테이너 : 목록 만들기 위젯의 위치를 다룰 때 레이아웃을 사용해싿면 위젯이나 다른 레이아웃에 데이터를 동적으로 표현해줄 때 컨테이너를 사용합니다. 컨테이너는 데이터를 반복적으로 표시하는 용도로 사용하는데 대표적인 컨테이너로는 목록을 화면에 출력할 때 사용하는 리사이클러뷰(RecyclerView)가 있습니다. 2.1 스피너 스피너(Spinner)는 여러 개의 목록 중에 하나를 선택할 수 있는 선택 도구입니다. // 스피너에 사용할 목록 생성, 어댑터 생성, 스피너에 어댑터 등록 var data = listOf("- 선택하세요 -", "1월", "2월", "3월", "4월", "5월", "6월") var adapter = ArrayAdapter(this, android.R.layout.simple_l..
#5-1. 화면 구성하기 2021-03-12 1. 컨텍스트 1.1 컨텍스트란 컨텍스트(Context)는 시스템을 사용하기 위한 정보(프로퍼티)와 도구(메서드)가 담겨 있는 클래스입니다. 대부분의 컨텍스트는 컴포넌트 실행(Running) 시 함께 생성되고, 생성된 컴포넌트가 가지고 있는 메서드를 호출해서 각각의 도구들을 사용할 수 있습니다. 안드로이드에서의 컴텍스트는 입을 실행하기 위해 잘 짜여ㄷ진 설계도의 개념으로 앱에서 사용하는 기본 기능이 담겨있는 기본 클래스(Base Class)입니다. 액티비티는 컨텍스트를 상속받아 구현됩니다. 액티비티처럼 컨텍스트를 상속받은 컴포넌트들은 코드상에서 baseContext를 호출하는 것만으로 안드로이드의 기본 기능을 사용할 수 있습니다. 컨텍스트의 종류 1. 애플리케이션 컨텍스트(Application Conte..