Конвертирую класс из java в kotlin, при условии, что класс рабочий
public class CurrentActivityUtil {
Activity currentActivity;
public Activity getActivityInstance() {
getInstrumentation().runOnMainSync(new Runnable() {
public void run() {
Collection<Activity> resumedActivity = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);
for (Activity act : resumedActivity) {
currentActivity = act;
break;
}
}
});
return currentActivity;
}
}
Конвертирую hotkey'ем ctrl+alt+shift+K
студия предлагает мне следующий вариант кода:
class CurrentActivityUtil {
internal var currentActivity: Activity
val activityInstance: Activity
get() {
getInstrumentation().runOnMainSync {
val resumedActivity = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED)
for (act in resumedActivity) {
currentActivity = act
break
}
}
return currentActivity
}
}
И сразу же подчеркивает internal var currentActivity: Activity
- property must be initialized or be abstract , пробую сделать его просто val currentActivity: Activity
но сразу же подчеркивается строка val currentActivity: Activity
- val cannot be reassigned.
В Kotlin переменная не может принимать значение NULL, если вы прямо этого не указали.
Вариантов у вас три:
internal var currentActivity: Activity?
. Знак вопроса после имени класса.Ну и еще один момент. Декларация val
означает, что переменная иммутабельна, т.е. константа и ее можно только читать. Для определения "обычной" переменной используйте var
Присоеденюсь к ответу данному раннее просто дав готовое решения для вашего класса, как это бы сделал я:
class CurrentActivityUtil {
internal var currentActivity: Activity? = null
val activityInstance: Activity?
get() {
getInstrumentation().runOnMainSync {
val resumedActivity = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED)
for (act in resumedActivity) {
currentActivity = act
break
}
}
return currentActivity
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеХочу реализовать заливку на Java под Android
В общем, проблема заключается в следующем: при добавлении кнопок на Table возникает сдвиг их области нажатияНа рисунке 1
есть вот такой код, мне надо сделать общий запрос sql в базу данных, чтобы он работал в моих разных методах