Функция, в которой есть аргумент класса Activity

229
09 июня 2017, 09:34

Когда я начал писать одну программу для тренировки, мне потребовалось сделать так, чтобы из другого файла 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);...}`

Может кто сталкивался с такой проблемой? Заранее спасибо!

Answer 1

Если я правильно понял, тебе нужно передать в параметрах экземпляр класса 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(), ... )
Answer 2

Если вызываешь этот метод из Activity.java то сделай так

function(..., this, ...)
READ ALSO
Проблема при адаптивной верстке

Проблема при адаптивной верстке

Доброе утро, пытаюсь сделать адаптивную верстку на сайт и столкнулся с такой проблемой, блок что идет справа не отображается на мобильных...

305
Разметка главной страницы на Bootstrap

Разметка главной страницы на Bootstrap

Необходимо исплользовать сетку бутстрапНа левом блоке будет внизу фоновое изображение

381
В шаблоне HTML сайта на Django русский текст вызывает появление ошибки

В шаблоне HTML сайта на Django русский текст вызывает появление ошибки

В шаблоне HTML сайта на Django русский текст вызывает появление ошибки UnicodeDecodeError: "utf-8" codec can't decode byte 0xd1 in position 162: invalid continuation byteКак решить эту проблему?

288