Я проверил эти части CarSystemUI теперь использует Kotlin, и я хотел переделать эту лабораторную работу по коду.
Я следовал инструкциям и добавил codelab_layout.xml. Затем я обновил sysui_overlay_window.xml и добавил этот ViewStub:
Код: Выделить всё
Загадка заключается в том, что на следующем шаге я должен добавить контроллер представления. В Java лаборатория кода просит добавить:
Код: Выделить всё
@SysUISingleton
public class CodeLabViewControllerJava extends OverlayViewController {
@Inject
public CodeLabViewControllerJava(
OverlayViewGlobalStateController overlayViewGlobalStateController) {
super(R.id.codelab_stub, overlayViewGlobalStateController);
}
}
Код: Выделить всё
@SysUISingleton
class CodeLabViewControllerKotlin @Inject constructor(
overlayViewGlobalStateController: OverlayViewGlobalStateController
) : OverlayViewController(R.id.codelab_stub, overlayViewGlobalStateController)
Код: Выделить всё
CodeLabViewControllerKotlin.kt:12:32: error: unresolved reference: codelab_stub
) : OverlayViewController(R.id.codelab_stub, overlayViewGlobalStateController) {
^
Есть идеи, почему это происходит?
PS: Если я заменю R.id.codelab_stub на жестко запрограммированный Int, код Kotlin компилируется нормально.
Подробнее здесь: https://stackoverflow.com/questions/787 ... va-can-why