본문 바로가기

TIL/Android17

[Android] 액티비티(Activity) 간의 통신 / 인텐트(Intent)로 데이터 주고 받기 / 액티비티 추가 생성하기 Activity - Activity 간의 이동 1. Activity 추가 생성하기 빈 액티비티를 생성해준다. New -> Activity -> Empty Activity New -> Kotlin Class/File 을 해도 된다. Activity의 이름은 원하는 것 아무거나 설정해준다. LayoutName은 자동으로 생성되며, Lancher Activity를 체크하게 되면 안드로이드 설정 파일 AndroidManifest.xml에 런처로 등록되어 프로그램 실행 시에 가장 먼저 호출되도록 설정이 된다. MainActivity와 함께 2개가 런쳐 액티비티로 설정이 될 경우 원하지 않은 액티비티가 실행될 수 있어 추가적인 수정이 필요하다. 2. 추가로 생성한 Activity에도 ViewBinding 적용 Vi.. 2022. 11. 11.
[Android] 인텐트(intent)란? / 컨텍스트(Context) /명시적 인텐트, 암시적 인텐트, 인텐트 필터 인텐트(Intent) 란? 인텐트는 직역하면 '의도'로, 개발자가 어떤 의도를 가지고 메서드를 실행할 것인지를 인텐트에 담아서 안드로이드에 전달하면 해당 인텐트를 해석하고 실행한다. 좀 더 자세히 말하면 액티비티를 실행하기 위해서는 단순히 컨텍스트가 제공하는 메서드를 호출하면 되는데, 이때 실행할 액티비티가 명시된 인텐트(Intent)를 해당 메서드에 전달해야 한다. 이렇듯 액티비티를 실행하려면 기본적으로 인텐트가 필요하지만, MainActivity는 특별한 설정을 하지 않아도 안드로이드에 자동으로 등록되고 실행이 가능하다. 그러나 새롭게 생성한 액티비티는 인텐트에 담아서 시스템에 전달하여야 실행이 가능하다. 새롭게 생성한 액티비티를 실행하기 위해 인텐트로 전달하는 순서는 아래와 같다. 새롭게 생성한 액.. 2022. 11. 10.
[Android] 뷰 바인딩(ViewBinding)이란? / 뷰 바인딩 설정 및 사용 방법 / ViewBinding findViewById 차이점 Activity와 Layout을 결합하는 대표적인 방법 1. findViewById - Android 초기부터 사용되었으며 별다른 설정없이 사용 가능하다. - 안드로이드 리소스를 관리하는 R 클래스를 통해 View를 찾는다. - 자동으로 형변환을 해주는 기능이 없어 직접 형변환을 해줘야 한다. - 연결된 Layout에 존재하지 않은 View여도 앱을 실행하기 전까지 오류를 발생시키지 않는다. 2. ViewBinding - 최근 가장 많이 사용되는 방법으로 XML 파일을 해석해서 객체로 변환한다. - 자동으로 형변환을 해주어 별다른 형변환을 할 필요 없다. - 연결된 Layout에 존재하는 View만을 가져올 수 있다. - 초기 설정이 필요하다. 3. DataBinding - XML 파일과 데이터를 직접 .. 2022. 11. 10.
[Android] 레이아웃(Layout) - LinearLayout, TableLayout, RelativeLayout 레이아웃(Layout)이란? 레이아웃은 여러 뷰들을 포함하고 배치하는 역할을 하며, 레이아웃 클래스는 모두 ViewGroup 클래스로부터 상속 받는다. 따라서 View 클래스와 ViewGroup 클래스의 메소드와 필드 모두 사용 가능하다. 레이아웃 클래스 설명 LinearLayout 자식들을 수직이나 수평으로 배치 TableLayout 자식들을 테이블 형태로 배치 GridLayout 자식들을 바둑판 모양으로 배치 RelativeLayout 자식들을 부모나 다른 자식에 상대적으로 배치 ConstraintLayout 자식들을 부모나 다른 자식에 상대적으로 배치 TabLayout 탭을 이용하여서 겹쳐진 자식 중에서 하나를 선택 AbsoluteLayout 절대 위치로 배치 FrameLayout 모든 자식들을 겹.. 2022. 11. 9.
[Android] 액션바 로고 아이콘 설정 + AVD 앱 타이틀 설정 / actionbar에 앱 아이콘 삽입하기 AVD 앱아이콘 설정 및 제목 출력하기 완성 UI 1. 앱 아이콘으로 사용할 이미지를 준비한다. 본인은 Instagram의 로고 아이콘을 사용하였다. 이미지의 크기는 96x96 정도의 *png 파일을 사용하는 것이 좋다. 나는 64px x 64px의 png 파일을 사용했다. 64x64 크기의 이미지 구하기가 어렵다면 아래의 파일을 사용해서 실습해보도록 하자. 2. drawable 폴더에 사진을 ctrl + c -> ctrl + v로 복사해준다. 마우스를 끌어다가 올리면 파일이 복사되는 것이 아니라, 해당 프로젝트 파일로 이동을 해버린다. 계속적으로 사진 파일을 사용하고자 한다면, 이동이 아닌 '복사'를 해준다. 3. MainActivity.java 파일에 Title 설정 및 앱 아이콘 설정 코드를 작성한.. 2022. 10. 20.
[Android] 이미지 뷰(ImageView), 이미지 버튼(ImageButton) 이미지 뷰(ImageView)란? 이미지 뷰는 아이콘과 같은 이미지들을 간단히 표시하는 데 사용되며, TextView 클래스를 확장한 것으로, 이미지를 표시할 수 있는 TextView라고 생각하면 된다. 속성 설정 메소드 설명 android:src setImageResource(int) 이미지 소스 설정 android:tint setColorFilter(int, PorterDuff, mode) 이미지 배경 색상 설정 android:maxHeight setMaxHeight(int) 이미지 뷰의 최대 높이 설정 android:maxWidth setMaxWidth(int) 이미지 뷰의 최대 너비 설정 android:adjustViewBounds setAdjustViewBounds(boolean) drawabl.. 2022. 10. 5.
[Android] 계산기 앱 만들기 안드로이드(Android) 계산기 앱 만들기 2개의 숫자를 입력받아 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 계산할 수 있는 간편한 계산기를 만들고자 한다. 완성된 안드로이드 유저 인터페이스 activity_main.xml 코드 MainActivity.java 코드 package ex.app.calcaulator; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.wi.. 2022. 10. 5.
[Android] 에디트 텍스트(Edit Text) 속성, 속성 값 에디트 텍스트(EditText)란? 입력가능한 필드로, 텍스트 필드라고도 하는데 EditText는 TextView의 자식 클래스이다. 에디트 텍스트는 사용자가 앱에서 텍스트를 타이핑하여 입력할 수 있다. TextView 클래스에서 상속받은 EditText 속성 속성 설명 android:autoText 자동으로 타이핑 오류를 교정 android:hint 입력 필드에 힌트로 표시되는 메시지 android:inputType 입력의 종류 android:text 표시되는 텍스트 android:singleLine true이면 한 줄만 입력 받음 android:editable 편집 가능 여부 android:drawableBottom 텍스트의 아래에 표시되는 이미지 리소스 android:drawableRight 텍스트.. 2022. 10. 5.
[Android] 이벤트 처리, 이벤트 리스너, 리스너 인터페이스, 콜백 메소드 이벤트 구동 방식(event-driven) vs 폴링 방식(polling) 일반적으로 그래픽 사용자 인터페이스에서 사용자의 입력을 받으려면 반드시 이벤트 구동 방식으로 처리하여야 한다. 이벤트 구동 방식이 아닌, 애플리케이션이 무한 루프를 돌면서 사용자의 입력을 기다리는 폴링(polling) 방식은 CPU의 파워를 엄청나게 낭비를 하기 때문에 최악의 방법이다. 그렇기에 안드로이드에서는 애플리케이션이 다른 작업을 하고 있다가 사용자의 입력이 발생하면 이벤트가 발생되고, 발생된 이벤트를 애플리케이션이 처리하는 이벤트 구동(event-driven) 방식을 사용한다. 안드로이드 이벤트 처리 방식 1. XML 파일에 이벤트 처리 메소드를 등록하는 방법 클릭 이벤트만 처리할 수 있으며, 버튼과 같은 위젯의 경우 간.. 2022. 10. 2.