본문 바로가기

Android

(22)
#01. MVVM MVVM Model View View Model 안드로이드 어플리케이션을 개발할 때 유지보수 가능하고 이해 가능하며 테스트가 가능한 코드를 작성하기 위해 디자인 패턴을 사용합니다. 적절한 지침, 디자인 패턴, 모범 사례를 따라 코드를 작성하면 누구나 이해하기 쉽습니다. 코드를 이해할 수 있다면 모든 개발자가 작업을 시작하기 쉽고 프로젝트를 장기적으로 유지할 수 있습니다. 구글은 몇가지 일반적인 아키텍처 원칙을 제안합니다. 1. Separation of Concerns - 모든 코드를 활동이나 조각으로 작성하는 것이 일반적입니다. 액티비티나 프래그먼트에는 UI를 담당하는 로직이 포함되어야합니다. UI 클래스를 네트워크 호출과 독립되게 만들어야합니다. 이렇게 하면 수명주기 관련 충돌을 피할 수 있습니다. 2..
Activity에서 다른 Activity 변수 접근하기 1. Context 변수 생성 가져오고 싶은 Activity에 Context 변수를 만들어 준다. public class MainActivity extends AppCompatActivity { public static Context context_main; // context 변수 선언 public int var; // 다른 Activity에서 접근할 변수 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); context_main = this; // onCreate에서 this 할당 } } 2. 다른 Activity에서 변수..
widget widget basic code 1. manifest에 receiver 코드를 작성합니다. manifest.xml 2. res -> xml에 example_appwidget_info.xml 파일을 만들고 코드를 작성합니다. example_appwidget_info.xml 여기에서 previewImage에 위젯 미리 보기 이미지를 정합니다. 3. ExampleAppWidgetProvider 클래스를 만들고 코드를 작성합니다. ExampleAppWidgetProvider.kt class ExampleAppWidgetProvider : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager,..
문자열 자르기 (kotlin) 출처 : detail.html?no=560 String은 char의 배열이므로 인덱스(index)값을 이용하여 특정 글자 수 이상의 글자는 자르거나 특정 단어만 자르는 등 여러가지 처리를 할 수 있습니다. 이 포스트에서는 substring 과 split 함수를 이용하여 문자열을 자르는 방법에 대해 소개합니다. val testString : String = “abcdefg” //배열의 인덱스는 앞에서부터 0,1,2,3 순서대로 값을 가지기 때문에 //testString의 0번째 값은 a, 1번째 값은 b가 됩니다. //1.substring은 인덱스 값을 기준으로 문자열을 자르는 함수로서, 2가지 방법으로 사용할 수 있습니다. String.substring(startIndex : Int) //2.문자열의 s..
Room 쿼리문 샘플 (kotlin) Entity @Entity(tableName = "memo_db") data class MemoEntity( @PrimaryKey(autoGenerate = true) var id: Long?, var memo: String = "", var cid: Int = 0 ) DAO @Dao interface MemoDAO { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(memo: MemoEntity) @Query("SELECT * FROM memo_db") fun getALL(): List @Delete fun delete(memo:MemoEntity) @Update fun update(memo:MemoEntity) //memo_db 테이블 중 c..
Android Room 일괄 삽입 또는 업데이트 (Kotlin) interface ItemDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(entity: Item) : Long @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertAll(vararg entity: Item) @Update fun update(entity: Item) @Update fun updateAll(vararg entity: Item) } 여러 개체 삽입 // insert multiple items itemDao.insertAll(item1, item2, item3) 목록을 varargs로 변환 // insert list of items val items = listOf(ite..

반응형