본문 바로가기

개발 일기/Android

(11)
[Kotlin] 간단 메모장 만들기 6 #Glide #Obseve 일단 이미지 스키마를 만들었다. WriteImage.tk @Entity(tableName = "write_image") data class WriteImage( @PrimaryKey(autoGenerate = true) val _id: Int?, @ColumnInfo(name = "diary_id") val diary_id: Int?, @ColumnInfo(name = "name") val name: String?, @ColumnInfo(name = "count") val count: Int? ) 그리고 메인에서 LiveData를 Observe 하는데 거기서 Diary 뿐만 아니라 WriteImag 도 Observe 하게 변경해 주었다. 그러면 사진이 삭제되어도 변경되고 글이 변경되어도 바뀌기 때문이다...
[Kotlin] 간단 메모장 만들기 5 #Camera #Gallery #PopupMenu 이번에는 카메라에서 사진을 찍어 이미지를 가져오고 갤러리에서 이미지를 불러올 것이다. 참고: https://developer.android.com/training/camera/photobasics?hl=ko 사진 촬영 | Android 개발자 | Android Developers 이 과정에서는 기존 카메라 애플리케이션을 사용하여 사진을 캡처하는 방법을 설명합니다. 클라이언트 앱을 실행하는 기기에서 촬영한 하늘 사진을 조합하여 세계 날씨 지도를 만드는 크라우드 소싱 날씨 서비스를 구현하고 있다고 가정하겠습니다… developer.android.com - Menu WriteActivity에 ImageButton을 넣어 PopupMenu를 띄워준다. WriteActivity.kt private fun show..
[Kotlin] 간단 메모장 만들기4 #RecyclerView #Adapter MainActivity에 RecyclerView가 들어가있는 MainFragment를 넣어서 저장한 리스트를 보여줄 것이다. main_fragment.xml tools:listitem = "여기에 리사이클뷰에 들어갈 뷰를 넣어준다" (위의 요소 하나하나를 담당할 아이템) MainFragment.kt class MainFragment : Fragment() { private lateinit var viewModel: MainViewModel companion object { fun newInstance() = MainFragment() } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState..
[Kotlin] 간단 메모장 만들기3 #LiveData #ViewModel LiveData와 ViewModel을 사용해서 저장되면 바로 데이터가 바뀌게 변경한다. DiaryDao.kt @Dao interface DiaryDao { @Query("SELECT * FROM diary") fun getAll(): LiveData } 기존에 작성했던 Dao에서 LiveData를 추가했다. 그리고 Repository를 작성한다. 여기서 간단하게 데이터를 뿌려주는 역할을 한다. Repository.kt class Repository (application: Application){ private val database = AppDatabase.getInstance(application)!! private val diaryDao = database.diaryDao() private val ..
[Kotlin] 간단 메모장 만들기2 #Room - Room 사용하기 몇 가지 추가를 해줘야 한다. //kapt 추가 apply plugin: 'kotlin-kapt' dependencies { //Room 추가 def room_version = "2.2.3" implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor // optional - Kotlin Extensions and Coroutines support for Room implementation "androidx.room:room-ktx:$room_version" ..
[Kotlin] 간단 메모장 만들기 1 #Intent #FloatingActionButton #다크모드 간단한 메모장을 만들어 보기로 했다. - 대략적인 설계 MainActivity에서는 메모 리스트(이미지 썸네일 1개, 제목, 내용, 작성 날짜)를 볼 수 있고 해당 리스트를 클릭하면 상세보기를 할 수 있다. 메인에서 화면 전환은 Fragment로 할 예정이다. 메인에서 FloatingActionButton을 통해 WriteActivity를 생성한다. WriteActivity는 게시글을 작성하는 페이지로 이미지 여러 장을 추가할 수 있고 제목(한 줄)과 내용을 작성하여 DB에 저장한다. 개발에 앞서 Activity와 Fragment에 대해 찾아봤는데 이전엔 성능 때문에 여러 가지를 고려해서 사용했는데 지금은 Single Activity에 Fragment만 사용해서도 어플 제작이 가능하다고 한다. 그래도 여..
[Kotlin] Floating Button 과 QRCODE 인식 AndroidManifest.xml build.gradle (Module: app) dependencies{ implementation('com.journeyapps:zxing-android-embedded:3.6.0') { transitive = false } implementation 'com.google.zxing:core:3.3.2' } 안드로이드 버전별로 쓰는게 다른듯?? MainActivity.kt class MainActivity : AppCompatActivity() { private var url = "https://url" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setC..
[Kotiln] WebView ACCESS_DENIED 퍼미션도 주고 다 했는데 웹뷰에서 오류가 나는 경우가 있다. val settings = webView.settings settings.databaseEnabled = true 웹뷰의 세팅에 데이터베이스 설정을 넣어주니 해결되었다!!