본문으로 건너뛰기

오늘 한 일

  • 약알림앱
  • Rust공부

Kotlin TimePicker 구현

알람 시간대 설정 로직

: 알람 시간을 누르면 핸드폰 알람 앱에서 시간을 설정하듯 시간을 설정하도록…

터치하면 카테고리를 고를 수 있게 패널이 뜨는 것을 뭐라고 하는지 모르겠다.
PopupMenu


PopupMenu

res/menu/메뉴, 아이템 명시 & 아이템에 이벤트 명시
.kt → 해당 이벤트(핸들러)를 파일에 명시


버튼의 값 바꾸기

class LoginActivity2:AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login2)

val morningClock: Button = findViewById(R.id.morning_clock)

morningClock.setOnClickListener { view ->
val popupMenu = PopupMenu(this, view) // Create a PopupMenu and pass the context and anchor view
popupMenu.inflate(R.menu.menu_morning_clock) // Inflate the menu resource
// Show the PopupMenu
popupMenu.setOnMenuItemClickListener { item ->
morningClock.text = onClickMorn(item)// Call the separate onClickMorn function
true
}

popupMenu.show()
}
}

fun onClickMorn(item: MenuItem): String{
return item.title.toString()
}

}

⇒ morningClock이 val이므로 morningClock.text가 변하지 않는 것?
⇒ morningClock의 값이 변했지만 화면에 rerender가 되지 않았기 때문에 변하지 않는 것?

→ 둘다 아니였다는…


xml 이벤트 명시 없이 진행

popupMenu.setOnMenuItemClickListener { item ->
morningClock.text = item.title
true
}

: 보아하니 Kotlin쪽 코드로 핸들러를 실행하는 것과 xml로 실행하는 것이 충돌하는듯하다.

→ 그냥 Kotlin 쪽 코드에 일임했더니 성공



Rust 공부

Rust로 swapper 구현

: 기존에 운영체제를 만들어보고 싶어서 시작한 것도 있었기 때문에 이번 주 과제를 swapper 만들기로 생각해봤다.

요구사항

각 함수 안의 코드가 10줄을 넘지 않도록

메모리영역이 있다. : 32
디스크영역이 있다. : 256
태스크가 있다. 태스크가 메모리를 모두 차지하여 메모리 공간이 없을 때 스와핑을 한다 태스크는 suspend 될 수 있다.

사용자는 프로그램을 실행할 수 있다.
LOL: 24, kakaotalk: 5, discord: 18, chrome: 10, chess: 4
FIFA: 18, memo: 2, vcs: 6, terminal: 1, slack: 6


직면한 문제..

: 너무 많아서 일단 부딪혀봐야 알 것 같다.
: 코드 단순화를 위해 먼저 필요한 함수를 설계하는 일부터 해봐야 할 것 같다.


Rust 공식문서

5.3 메소드