안드로이드

안드로이드/안드로이드

[Android/Kotlin] 퍼미션(권한)허용

안드로이드앱에서는 기기에 있는 데이터나 기능들을 접근하기 위해서는 권한을 설정해줘야 합니다. 또한 그권한이 중요한 권한이거나 버전이 올라감에 따라 manifest에 사용하겠다고 알려주더라도 앱에서 또 한 번 사용자에게 이 권한을 사용해도 되는지 물어볼 수 있습니다. ContextCompat.checkSelfPermission함수를 통하여 현재 권한이 있는지 확인할수있으며ActivityCompat.requestPermissions로 안드로이드에서 지원하는 권한용청 다이얼로그를 보여줄 수 있습니다. 그렇지만 거부했을경우 사용자에게 이 부분으로 생길 수 있는 문제를 알릴 필요가 있습니다. 이러한 부분은 ActivityCompat.shouldShowRequestPermissionRationale로 조건문으로 검..

안드로이드/안드로이드

[Android/Kotlin] 리사이클러뷰(RecyclerView) 스와이프 이벤트

안드로이드의 리사이클러뷰에서 스와이프 이벤트를 하는 방법 중 ItemTouchHelper.callback()을 이용할 수 있습니다. 리사이클러뷰에서 스와이프나 드래그등 동작을지원해 해당 동작들을 허용하거나 막을 수 있으며 해당 동작을 했을 때 어떤 이벤트를 발생시킬 것인지 관리할 수 있습니다. 사용법 //적용 //.... userListItemHelper.attachToRecyclerView(recyclerView)//리사이클러뷰와 연결 연결 //구현 class UserListItemHelper(private val requsetPermission:(pos:Int)->(Unit)) : ItemTouchHelper.Callback() { companion object{ private const val TA..

안드로이드/안드로이드

[Android/Kotlin] attachToParent

뷰바인딩에서는 inflate 함수가 2가지 오버로드된 버전으로 제공됩니다. 이 두 가지 버전의 차이는 attachToParent 매개변수의 유무입니다. 다음은 두 가지 버전의 inflate 함수의 예시 코드입니다. //attachToParent 사용 하지 않음 val binding = ActivityMainBinding.inflate(layoutInflater) //attachToParent 사용 val binding = ActivityMainBinding.inflate(layoutInflater, parent, attachToParent = false) 리사이클러뷰에서는 binding을 이용해 뷰홀더를 만드는 과정에서는 해당작업을 할 때는 아래와 같은 inflate 함수를 사용해야 합니다. 만약 그렇지..

안드로이드/안드로이드

[Android/Kotlin] 프래그먼트안 프래그먼트에서 뒤로가기

오늘은 프래그먼트 안에 프래그먼트를 두고 onBackPressed 이벤트가 일어날 때 이전의 프래그먼트로 가게 동작시키고 싶었습니다. 그러기 위해서는 먼저 프래그먼트 안에서 프래그먼트를 바꿔줄 필요가 있었습니다 val fragment1 = Fragment1().getInstance() supportFragmentManager.beginTransaction().replace(R.id.container, fragment1).commit() 기존액티비티에서는 위처럼 supportFragmentManager를 이용하여 프래그먼트를 쉽게 바꿔 줄 수 있었지만 프래그먼트에는 supportFragmentManager가 없기에 다른 매니저를 가져와야 했습니다. /** * Return a private FragmentM..

안드로이드/안드로이드

[Android/Kotlin] 알림(Notification) - 1, NotificationChannel 속성

이전에 알림의 채널에 관련돼서 포스팅을 했지만 알림에 관해서는 정리를 안 한 것 같아 알림 기능을 정리해 볼까 합니다. 알림은 이러한 구조로 구성됩니다. NotificationManager : 알림을 시스템에 발생시키는 SystemService Notification : 알림 구성 정보를 가지는 객체 NotificationCompat.Builder : 알림을 다양한 정보로 생성 NotificationChannel : 알림의 관리 단위(Android Oreo에서 추가) 이제 위 구조들을 이용하여 알림을 생성시켜 봅시다. 1. 처음에는 NotificationManager를 안드로이드에서 받아 와야 합니다. val manager = getSystemService(NOTIFICATION_SERVICE) as N..

안드로이드/안드로이드

[Android/Kotlin] 리사이클러뷰(RecyclerView) 스크롤 이벤트

리사이클러뷰에서는 기존에 스크롤 이벤트를 관리할 때 setOnScrollListener를 이용해서 OnScrollListener객체를 집어넣어서 해당 로직을 구현하였습니다. package androidx.recyclerview.widget; //Set a listener that will be notified of any changes in scroll state or position //스크롤 상태나 위치의 변경 사항에 대해 알림을 받을 리스너를 설정합니다. @Deprecated public void setOnScrollListener(@Nullable OnScrollListener listener) { mScrollListener = listener; } 그러나 이방식은 스크롤 동작에 따라 여러 개의..

안드로이드/안드로이드

[Android/Kotlin] 알림(Notification)아이디 채널아이디

오늘은 알림(Notificatio)을 알아볼까 합니다 알림은 사용자에게 미리 알림을 주고 다른 사람과의 소통을 가능하게 하며 앱에서 보내는 기타 정보를 적시에 제공하기 위해 Android가 앱의 UI 외부에 표시하는 메시지입니다. 사용자는 알림을 탭 하여 앱을 열거나 알림에서 바로 특정 작업을 실행할 수 있습니다. 공식 안드로이드 docs를 보면 알림을 이렇게 설명하고 있습니다. 알림은 여러 방식으로 사용자에게 여러 정보들을 표시하거나 동작(event)들을 수행할 수 있게 해 줍니다. 기존에 안드로이드에서는 알림 채널을 따로 만들어 줄 필요 없이 알림을 구현할 수 있었지만 안드로이드 API26 오레오 버전부터는 따로 Notification Channel을 추가를 해줘야 합니다. 이처럼 Notificati..

안드로이드/안드로이드

[Android/Kotlin] 뷰 바인딩(ViewBinding)

뷰바인딩을 쓰는 이유 안드로이드 코드에서 xml에 있는 UI에 접근을 하기 위해서는 FindViewById를 이용합니다. @SuppressWarnings("TypeParameterUnusedInFormals") @Override public T findViewById(@IdRes int id) { return getDelegate().findViewById(id); } //ex) val button : Button = findViewById(R.id.button) 이 방법도 나쁘지는 않지만 일일이 findViewById() 함수로 하나하나 찾아서 가져와야 한다는 애로사항이 있었습니다. 3.5 버전까지는 개발자들이 findViewById를 사용했었지만, Butter knife라는 라이브러리나 extensi..

안드로이드/안드로이드

[Android/Kotlin] 리사이클러뷰(RecyclerView) 어댑터 이야기

안드로이드로 앱을 개발하다 보면 여러 어댑터를 만나게 됩니다. 어댑터(영어: adapter, adaptor)는 다른 전기나 기계 장치를 서로 연결해서 작동할 수 있도록 만들어 주는 결합 도구를 뜻합니다. 안드로이드에서 이러한 어댑터들은 리스트뷰나 ViewPager같이 연속된 객체들을 보여줄 때 어떻게 연결한 것인지에 대해서 설정할 수 있습니다. 오늘은 리사이클러뷰의 어댑터들에 대에서 포스팅을 해볼까 합니다. 리사이클러뷰(RecyclerView)는 여러 객체들을 아이템 단위로 구성하여 화면에 출력하는 뷰그룹이며, 한 화면에 표시되기 힘든 많은 수의 데이터를 스크롤 가능한 리스로 표시해 주는 위젯입니다. 그렇다면 이게 리스트 뷰랑 다른 점이 뭐가 다르냐고 말할 수 있습니다. 리사이클러뷰는 이 리스트뷰의 상위..

안드로이드/안드로이드

[Android/Kotlin] ActivityResultLauncher는 무었일까요?

기존에는 startActivityForResult를 이용하여 액티비티 이동시 Result값을 받아오겠다는 것을 알려주고 onActivityResult()를 이용하여 값을 액티비티의 이동후 다 원래 액티비티로 돌아왔을 때 Result로 받아온 값들을 이용할 수 있었습니다. 그렇지만 최근에 와서는 이렇게 startActivityForResult가 deprecated 되면서 안드로이드 자체에서 쓰는 것을 권유하지 않습니다. 역시 같이 쓰이던 onActivityResult() 또한 deprecated 되었습니다. Deprecated : 이 메서드는 ActivityResultContract 및 androidx.activity.result.contract.ActivityResultContracts에서 사용할 수 있..

감자씨앗
'안드로이드' 카테고리의 글 목록 (3 Page)