일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- viewmodelscope
- 코틀린 이미지저장 #파일저장
- 1회용컵
- compse collectAsState
- 안드로이드 스튜디오 애뮬레이터
- 토글 험수
- 셀룰로오스-g-폴리락타이드 공중합체
- compse state
- 커스텀스피너
- TowmonUSB 연결오류
- 코루틴 job
- 코틀린 트리거 버튼
- var 와 val
- 모의위치 주입
- Room 데이터베이스 업데이트
- withContext
- 비콘스캐닝
- TwomonUSB
- apk이름변경
- 안드로이드스튜디오 jdk
- 라이브데이터 postValue
- json 저장
- #큐구조 #큐다운로드
- 안드로이드 sms
- 안드로이드 비콘
- 스레드 #코루틴
- 플라스틱 생분해
- 1회용 플라스틱컵
- 안드로이드 mvvm
- bluetoothmanager
- Today
- Total
목록분류 전체보기 (52)
EnjoyLife
백그라운드 스레드 사용해서 메인UI에 접근이 필요할 경우 사용한다. 예를 들어, API 통신시 결과값으로 CoroutineScope(Dispatchers.IO).launch 안에서 플레이어 화면 갱신 또는 위젯접근시 반드시 withContext(Dispatchers.Main) 을 사용해야 한다. viewModelScope.launch(Dispatchers.IO) { // 백그라운드 스레드에서 실행되는 코드 val data = database.loadData() // 데이터베이스에서 데이터를 로드합니다. withContext(Dispatchers.Main) { // 메인 스레드로 전환하여 UI 업데이트 수행 textView.text = data // TextView의 텍스트를 업데이트합니다. } // wi..
퍼옴:"이것이 안드로이드다 with 코틀린" 책의 저자이신 "고돈호"님의 코드입니다. 05장 2.2 리사이클러뷰 > 이것이안드로이드다with코틀린 | flow9.net - 코틀린, 안드로이드 05장 2.2 리사이클러뷰 > 이것이안드로이드다with코틀린 | flow9.net - 코틀린, 안드로이드 본문 ###MainActivity ``` class MainActivity : AppCompatActivity() { val binding by lazy {ActivityMainBinding.inflate(layoutInflater)} override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentVi..
버튼 xml android:onClick="@{()->learnViewModel.onHideDeleteEvent(!learnViewModel.isDelete)}" 뷰모델 var isDelete = MutableLiveData() fun onHideDeleteEvent(isClick:Boolean) { isDelete.value = isClick } 액티비티 learnViewModel.isDelete.observe(this){ Timber.e("isDelete = $it") } 참쉽죠~
퍼옴 https://comeths.tistory.com/133 Error while waiting for device: Timed out after 300seconds waiting for emulator to come online. Android Studio 우측 상단의 AVD Manager를 누른 후 에러가 발생한 에뮬레이터를 우클릭한 후 Wipe Data를 선택한다. 해당 에뮬레이터를 다시 실행해 보면 에러가 발생하지 않는다. comeths.tistory.com 에러가 발생한 에뮬레이터를 우클릭한 후 Wipe Data를 선택한다.
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } //아래 코드를 추가한다. applicationVariants.all { variant -> variant.outputs.all { outputFileName = parent.project.getName() +"_V${variant.versionName}_${new Date().format('YYMMdd')}.apk" } } }
아래 링크 참고. 퍼옴 https://medium.com/@nayantala259/android-how-to-read-and-write-parse-data-from-json-file-226f821e957a Android — How to Read and Write (Parse) data from JSON File ? How to Insert, Update and Delete the data available in JSON File in Android ? medium.com
LiveData와 유사한 기능이 있습니다. 바로 State입니다. State는 Compose에서 데이터를 관리하는 데 사용되는 선언형 데이터 구조입니다. LiveData와 마찬가지로 State는 값이 변경될 때 UI를 자동으로 업데이트합니다. State는 LiveData와 몇 가지 차이점이 있습니다. 첫째, State는 항상 최신 값을 포함합니다. LiveData는 데이터의 이전 값을 포함할 수 있습니다. 둘째, State는 Compose의 뷰 계층에 직접 바인딩할 수 있습니다. LiveData는 뷰 계층에 바인딩하려면 중개자(Mediator)를 사용해야 합니다. State를 사용하는 방법은 다음과 같습니다. @Composable 안의 함수에서는 State를 변경하기 위해 State 객체의 value 속..
아래 블로그를 참고하면 됩니다. 이보다 더 자세한 설명은 없더라구요. https://mparchive.tistory.com/176 [안드로이드] Room 데이터베이스의 테이블 등을 업데이트 할 시, Migration 옵션을 필히 집어넣자. 기존 프로젝트의 로컬 DB 테이블에 컬럼을 삽입해야하는 요구사항이 생겼는데, 이를 진행하면서 필수적이었던 Migration 과정을 리뷰해두고자 한다. Room DB를 안드로이드에 설정할 때에는 @Database mparchive.tistory.com