비동기 처리를 하기 위해 사용합니다. 버튼을 클릭하면 현재 시간을 초 단위로 가져오는 코드를 작성해 보았습니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { textView.text = "${System.currentTimeMillis()}" } } } 실행하면 아래와 같이 동작합니다. 버튼을 클릭했을 때 시간이 나오도록 하고 싶은 게 아니라 실시간으로 바뀐 시간을 출력하고 싶어서 코드를 아래와 같이..
안드로이드에서는 개인정보, 센서, 저장소, 카메라 등을 사용하기 위해서는 권한 등록을 해야 합니다. 권한이 필요로 하는 기능을 사용할 때 반드시 권한을 등록을 해야 합니다. 사용 방법은 아래와 같이 AndroidManifest.xml 에 권한을 등록해주면 됩니다. 위와 같이 사용하면 됩니다. 권한 중에 개인정보를 필요로 하는 권한은 안드로이드 마시멜로부터 사용자가 권한 체크를 해야지 사용할 수 있습니다. 권한 체크는 코드로 작성하면 됩니다. 전체 코드는 아래와 같습니다. class MainActivity : AppCompatActivity() { private val permissionList = arrayOf( Manifest.permission.ACCESS_FINE_LOCATION, Manifest...
알림 창에 메시지를 띄우는 것입니다. Notification Channel 먼저 안드로이드 파이부터 추가된 Channel을 사용해야 합니다. private fun createNotificationChannel(id :String, name :String) : NotificationCompat.Builder{ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val channel = NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH) ..
화면 상단에 배치되어 있는 부분을 의미합니다. XML 수정하기 먼저 activity_main의 xml을 아래와 같이 수정합니다. menu 만들기 Resource type을 Menu로 설정하고 메뉴를 만들어줍니다. 그리고 xml을 아래와 같이 수정합니다. 코드 작성하기 MainActivity를 아래와 같이 수정해줍니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun onCreateOptionsMenu(menu: Menu?): ..
뷰에 설정할 수 있고 뷰를 길게 누르면 메뉴가 나타난다. context menu에 필요한 함수는 아래와 같습니다. registerForContext - context menu를 등록하는 함수 onCreateContextMenu - 뷰를 길게 누르면 호출되는 함수 onContextItemSelected - 메뉴 클릭 시 발생하는 함수 XML 수정하기 activity_main의 xml을 아래와 같이 수정합니다. menu 만들기 res > New > Android Resource File을 클릭한 후 Resource type을 menu로 설정한 후 생성을 합니다. menu의 xml을 아래와 같이 수정해줍니다. 코드 작성하기 class MainActivity : AppCompatActivity() { overr..
popup menu를 사용하면 원하는 곳에 메뉴를 띄울 수 있습니다. 버튼을 클릭하면 TextView에 popup menu가 뜨는 예제를 만들어 보겠습니다. XML 수정하기 activity_main의 xml을 아래와 같이 수정하였습니다. Menu 만들기 res > New > Android Resource File을 클릭합니다. Resource type으로 Menu를 선택한 후에 생성합니다. Menu XML 작성하기 menu xml의 내용을 아래와 같이 수정하였습니다. 코드 작성하기 버튼을 클릭하면 TextView에 Popup Menu를 보여주기 위해서 이벤트 처리를 하겠습니다. MainActivity에 아래 코드를 추가해주면 됩니다. class MainActivity : AppCompatActivity(..
Observable이 데이터를 발행하는 속도 옵서버가 데이터를 받아서 처리하는 속도 사이의 차이가 발생할 때 사용하는 함수입니다. 계산 중인데 시작 버튼을 눌러서 계산이 다시 시작이 되면 매우 곤란할 것입니다. 이를 방지하기 위해 사용합니다. sample 특정한 시간 동안 가장 최근에 발행된 데이터만 걸러 줍니다. 많은 데이터가 들어와도 마지막 데이터만 발행합니다. 입력 class SampleExample { fun marbleDiagram() { val data = arrayOf("1", "7", "2", "3", "6") CommonUtils.start() // 100ms 간격으로 4개 발행 val earlySource = Observable.fromArray(*data) .take(4) .zipWi..