Как передать Context

129
30 октября 2019, 16:40

Пишу клавиатуру, пытаюсь вывести информацию из БД

public final class InputLogic {
String test, test2;

public final RichInputConnection mConnection;
private final RecapitalizeStatus mRecapitalizeStatus = new RecapitalizeStatus();
public final TreeSet<Long> mCurrentlyPressedHardwareKeys = new TreeSet<>();

public InputLogic(final LatinIME latinIME) {
    mLatinIME = latinIME;
    mConnection = new RichInputConnection(latinIME);

}

Пытаюсь передать Context public InputLogic(final LatinIME latinIME, Context context)

Но при этом в другом классе ругается эта строка

final InputLogic mInputLogic = new InputLogic(this);

Как в таком случае передать контекст?

Answer 1

Как правило, Context - это Activity, которая находится на переднем плане, для сервиса - Service. Это наследники базового абстрактного класса Context.

Для того, чтобы получить контекст в стороннем классе вне Активити/Сервиса, его нужно туда передать при создании и, если класс не статический, даже сохранить для дальнейшего использования.

Во фрагменте контекст можно получить через getActivity(), в некоторых классах (например, View) через getBaseContext() или getApplicationContext().

Что касается вашего примера, не очень понятна взаимосвязь этих трёх строк:

public InputLogic(final LatinIME latinIME, Context context)
final InputLogic mInputLogic = new InputLogic(this); //кто здесь this?
public InputLogic(final LatinIME latinIME) {}

Они все про разное.

READ ALSO
CRUD операции в Spring Data JPA и Hibernate

CRUD операции в Spring Data JPA и Hibernate

Spring Data JPA – это не реализация JPA, это абстракция доступа к данным БД

156
Как передать данные из Json в ArrayList

Как передать данные из Json в ArrayList

Пробую высветлить несколько маркеров на карте но не понимаю как правильно создать запрос к Json помогите пожалуста

160
cannot be applied to given types

cannot be applied to given types

Не знаю в чём ошибка сижу 2ой час

224