Когда я начал писать одну программу для тренировки, мне потребовалось сделать так, чтобы из другого файла Java кода вызывалась функция. Но так как файл Java, из которого я вызываю функцию не привязан ни к какому Activity (чтобы можно было его вызвать откуда угодно), мне пришлось прописать в этой функции аргумент класса Activity, но при этом когда я прописываю сам Activity, Android Studio говорит мне что в коде ошибка
Expression expected
если кому не понято, вот пример:
Activity.java:
//вызов функции
function(..., com.example.project.Activity, ...)//выдаёт ошибку где com.example.project.Activity
crViewInActivity.java (забыл сказать, что эта функция создаёт несколько View в Activity):
public static void function(..., Activity where, ...){...; TextView text = new TextView(where);...}`
Может кто сталкивался с такой проблемой? Заранее спасибо!
Если я правильно понял, тебе нужно передать в параметрах экземпляр класса Activity из другого класса (не активити)? Тогда можно в MainActivity объявить объект класса MainActivity, в методе onCreate(...) присвоить этому объекту this, и создать публичный метод, который возвращает этот объект.
private static MainActivity activity;
@Override
public void onCreate (...) {
activity = this;
...
}
public static MainActivity getInstance () { return activity; }
А потом с помощью метода MainActivity.getInstance() получить нужный объект.
function(... , MainActivity.getInstance(), ... )
Если вызываешь этот метод из Activity.java то сделай так
function(..., this, ...)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей