목록전체 글 (32)
easy-1
앱 개발 시 클릭리스너를 적용할때 리스너 호출을 빠르게 누르면 중복으로 호출 되는 경우가 발생함 리스너 호출 시 일정시간 이내에 재호출을 하지 못하게 변경하여 처리함 1. OnSingleClickListener 생성하여 인터벌 발생 시킴 class OnSingleClickListener( private var interval: Int = 600, private var onSingleClick: (View) -> Unit ) : View.OnClickListener { private var lastClickTime: Long = 0 override fun onClick(v: View) { val elapsedRealtime = SystemClock.elapsedRealtime() if ((elapsedRe..
로컬 데이터 읽기, 쓰기에 자주 사용되는 SharedPreferences 를 좀 더 효율적으로 사용하기 위함 1. PrefManager object 생성 object PrefManager { private var pref: SharedPreferences? = null fun init(context: Context) { if (pref == null) pref = context.getSharedPreferences(PREF_NAME, Activity.MODE_PRIVATE) } // String fun read(key: String?, defValue: String?): String? { return pref!!.getString(key, defValue) } fun write(key: String?, ..
좌우로 페이지를 넘기는 형식으로 사용되며 앱 소개 페이지, 배너 등에서 자주 사용됨. ViewPager2에서는 기존 ViewPager 와는 다르게 RecyclerView를 기반으로 빌드됨. 1. gradle.build 파일에 AndroidX 종속 항목을 추가 dependencies { implementation("androidx.viewpager2:viewpager2:1.0.0") } 2. ViewPager2 레이아웃에 추가 3. Adapter 설정 class ViewPagerAdapter(private val items: ArrayList) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int..
Retrofit 을 이용한 서버통신을 할 때 MVVM + Repository + Dagger 를 적용하여 구현 1. SignActivity 2. SignViewModel 3. SignModel 4. RetrofitService 5. NetworkModule 6. SignRepository 7. SignRepositoryImpl uid 값을 서버에 전송하고 success 값을 받아오는 예제 1) SignActivity.kt - Activity 에서 ViewModel 을 등록 - userInfo 데이터를 Observe 하며 반응형 프로그래밍 작업 @AndroidEntryPoint class SignActivity : AppCompatActivity() { private lateinit var binding:..