나의 경우에는 MyApp 클래스를 만들고 Application()을 상속시켜 전역 변수를 저장하는 클래스를 만들고, 여기에 applicationContext를 저장해서 전역에서 context를 편하게 쓰려고 만들었으나 위와 같은 에러가 떳다. static, companion object와 같은 정적 변수를 초기화 할 때 나타나는 에러로 이해하고 있다. class MyApp : Application() { companion object { var user: User? = null // 기존 코드 // val applicationContext: Context = MyApp().applicationContext val applicationContext: Context get() = MyApp().applica..
전체 글
코드만 봐도 다 알 수 있다.안드로이드 앱을 개발하다 보면 각 분기에 따라서 팝업을 띄워줘야 할 때가 있다. 간단하게 코드로 보자 fun onClickActivitySelectedPhoto(view: View) { val photoDialog = AlertDialog.Builder(this) val items = arrayOf("카메라", "앨범") photoDialog.setTitle("사진을 추가할 방법을 선택해주세요") photoDialog.setItems(items, DialogInterface.OnClickListener { dialog, which -> when (items[which]) { "카메라" -> { startActivityForResult( ImagePicker.cameraOnly().getIntent(thi..
override fun onOptionsItemSelected(item: MenuItem): Boolean { return super.onOptionsItemSelected(item) } 아이템 선택 시 아이템을 이용한 옵션 설정(메인 액티비티나 프래그먼트) override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu_share, menu) return super.onCreateOptionsMenu(menu) } 옵션 메뉴 생성(메인 액티비티나 프래그먼트) private fun setOnClickPopUpMenu(view: View, context: Context, review: Review) { val ..
val intent: Intent = Intent(Intent.ACTION_SEND) intent.type = "text/plain" intent.putExtra(Intent.EXTRA_TEXT, "${"공유할 url 넣기"}reviews/${review.id}") startActivity(Intent.createChooser(intent, "내 리뷰 공유하기")) 안드로이드 공유 기능에는 각 sns에서 제공해주는 sdk를 이용하거나 공유 기능을 담고 있는 ACTION_SEND INTENT로 이동해야 한다. 후자가 구현하기 훨씬 편하고 사용하기도 간편하므로 후자의 기능을 추천한다. 공유할 url 넣기에 게시글의 url을 넣으시면 된다. 팝업 메뉴 같은곳에서 활용하기 좋은듯 싶다.
코틀린 코드 import com.google.android.material.bottomnavigation.BottomNavigationView import android.content.Context import android.util.AttributeSet import androidx.core.content.ContextCompat import android.graphics.* class CustomBottomNavigationView : BottomNavigationView { private var mPath: Path = Path() private var mPaint: Paint = Paint() private val CURVE_CIRCLE_RADIUS = 190 / 2 private val mFir..
검색 기록을 만들 일이 있어서 코틀린으로 sqlite를 쓸 일이 생겼다. 일단 코드부터 보면 package com.connple.weat.sqlite import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper import android.provider.BaseColumns // sql 헬퍼 생성 class SearchSQLiteHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { override fun onCreate(db: SQ..