안드로이드

안드로이드/개념

[Android] registerForActivityResult 사용하기

registerForActivityResult registerForActivityResult는 ActivityResultContract와 ActivityResultCallback을 가져와서 다른 activity를 실행하는 데 사용할 ActivityResultLauncher를 반환합니다. 즉, registerForActivityResult를 사용하면 다른 액티비티로부터 받아온 intent와 result code를 통해 원하는 데이터를 가져올 수 있습니다. 활동에서 결과 가져오기 | Android 개발자 | Android Developers 활동에서 결과 가져오기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱 내에서든 다른 앱에서든 다른 활동을 시작하는 것은 단방향 작업이..

안드로이드/활용

[Android] RecyclerView

RecyclerViewRecyclerView는 대량의 데이터를 효율적으로 화면에 나타내기 위해서 각 아이템을 목록 형태로 화면에 표시하는데 사용됩니다. ListView와 유사하나 아래와 같은 성능 개선과 유연함으로 업그레이드 버전으로 많이 사용됩니다. ViewHolder 패턴을 기본적으로 구현하도록 하여 스크롤 시에 뷰를 재사용합니다.LayoutManager를 통해서 각 아이템의 배치를 수직, 수평, 격자 등 다양하게 배치할 수 있습니다. RecyclerView 구현하기1. RecyclerView를 담을 Layout 작성 2. 각 아이템 View 구성을 위한 xml 작성과 Item List 만들기 // Item List 만들기val fruitList = mutableListOf..

안드로이드/활용

[Android] addView와 ListView

addView addView는 지정한 Layout에 동적으로 View를 추가할 수 있는 메서드입니다. 여기서 addView를 사용하는 방법에는 두 가지가 있습니다. 코드 상에서 View를 만들어 레이아웃에 추가하는 방식 리스트뷰의 아이템을 담을 xml을 직접 만들어 추가하는 방식 1. 리스트뷰를 담을 container 생성 addView 방식은 자동으로 스크롤이 추가되지 않기 때문에 container를 ScrollView로 감싸주어야 합니다. 2-1. 코드 상에서 View를 만들어 레이아웃에 추가하는 방식 직접 TextView를 코드로 짜서 addView를 통해 레이아웃에 추가합니다. val container = binding.linearLayout TextView(this).apply { textSiz..

안드로이드/활용

[Android] Room 사용하기

Room 추가하기 Room을 사용하기 위해서 build.gradle에 Room 라이브러리를 추가합니다. plugins { id 'kotlin-android' id 'kotlin-kapt' } dependencies { val room_version = "2.5.0" implementation 'androidx.room:room-runtime:$room_version' kapt 'androidx.room:room-compiler:$room_version' } Room 구성요소 Database 데이터베이스 구성을 정의하고 영구 데이터에 대한 앱의 기본 액세스 포인트 역할을 수행합니다. Database 어노테이션을 사용하고 어노테이션 내에 entities을 포함해야 합니다. RoomDatabase()를 확장하..

안드로이드/활용

[Android] SQLite 사용하기

SQLiteOpenHelper 클래스 생성 SQLiteOpenHelper는 SQLite에 접근하는 클래스로, SQL 명령어를 실행하고 DB를 관리하는 메소드를 가지고 있습니다. SQLiteOpenHelper를 상속받게 되면 다음의 3가지를 구현해 주어야 합니다. constructor : DB name과 DB version 명시 onCreate : DB 생성 onUpgrade : 생성한 DB의 version이 올라 수정이 필요한 경우 class SQLiteHelper(context: Context, name: String, version: Int) : SQLiteOpenHelper(context, name, null, version) { public static final String TABLE_NAME ..

안드로이드/활용

[Android] 로컬 데이터베이스에 데이터 저장

SharedPreferences SharedPreferences는 primitive data(String, int, float, Boolean)를 Key-Value 형태로 앱 안에 XML 파일로 저장하는 방식입니다. 사용자 설정을 저장하거나 앱 내에서 다양한 활동에 사용할 수 있는 데이터를 저장해야 할 때 사용할 수 있습니다. SharedPreferences는 소량의 데이터를 저장할 때 사용하는데 SavedInstanceState도 액티비티에서 데이터를 저장하는데 자주 사용합니다. SharedPreferences는 세션과 관계없이 영속적으로 보관해야 하는 데이터가 있을 때 사용하고, SavedInstanceState는 유저의 세선 내에서 액티비티의 인스턴스를 저장하는 데 사용합니다. SQLite SQLi..

안드로이드/개념

[Android] Serializable vs Parcelable

Serializable Serializable은 Java에서 제공하는 인터페이스로, 객체를 직렬화하여 전달하기 위해 사용됩니다. Serializable을 사용하면 객체를 바이트 스트림으로 변환하여 전달합니다. Serializable 인터페이스를 구현한 객체는 Java에서 제공하는 ObjectOutputStream을 사용하여 전달됩니다. Serializable을 사용하면 Serializable 선언 외에 추가하는 코드가 없어서 편리하게 사용할 수 있습니다. Serializable은 내부적으로 Reflection을 사용하는데 이 처리 과정 중에 많은 객체들이 추가로 생성되고 사용됩니다. 이 많은 객체들은 가비지 컬렉터의 타겟이 되어 가비지 컬렉터의 과도한 동작으로 인해서 성능 저하가 발생합니다. data c..

안드로이드/UI

[Android] Chip과 ChipGroup

Chip Chip은 입력이나 속성, 작업을 나타내는 대화형 압축 요소입니다. 이는 필터링 설정이나 작은 텍스트를 보여주는데 유용하게 사용됩니다. Chip을 사용하기 위해서는 build.gradle에 Material Library가 추가되어 있어야 합니다. implementation 'com.google.android.material:material:1.9.0' ChipGroup Chip만 사용할 경우 줄이 가득차면 다음 줄로 넘어가지 않고 계속해서 옆으로 생성됩니다. 이럴 때, ChipGroup 안에 Chip을 생성하면 알아서 다음 줄에 Chip을 생성됩니다. ChipGroup을 사용하면 자동 개행이 적용되고, 여백을 한 번에 조정할 수도 있습니다. Chip의 속성 style : Chip의 스타일 Ent..

damon-911
'안드로이드' 카테고리의 글 목록 (9 Page)