Что содержится в «this» при использовании «инвентаря»? - PullRequest
1 голос
/ 20 октября 2019

Я создаю интерфейс в андроид студии. Я выполняю функцию onClick для моего RecyclerView.

Здесь вы можете увидеть мой HomeFragment, который содержит RecyclerView и, таким образом, реализует метод onEventListener.

public class HomeFragment extends Fragment implements HomeAdapter.onEventListener

Мне также пришлось изменить конструктор в адаптере.

  public HomeAdapter(Activity ctx, ArrayList<EventPost> Arr, onEventListener onEventListener) {
            this.ctx = ctx;
            this.items = Arr;
            this.mOnEventListener = onEventListener;
        }

По этой причине в моем HomeFragment.java мне пришлось изменить аргументы при инициализации HomeAdapter.

homeAdapter = new HomeAdapter(getActivity(),event_list, this);

Здесь я смог использовать это, чтобы передатьonEventListener. Тем не менее, я также инициализирую HomeAdapter позже в приложении, но эта инициализация заключается в методе, которому «this» присвоено не то, что было раньше. По этой причине он не работает с этим и требует onEventListener тип аргумента.

Как бы я изменил «это» во второй инициализации, чтобы он работал глобально?

Ответы [ 2 ]

0 голосов
/ 20 октября 2019

используйте HomeFragment.this во втором методе.

homeAdapter = new HomeAdapter(getActivity(),event_list, HomeFragment.this);

0 голосов
/ 20 октября 2019

Попробуйте передать это с именем класса, например, onEventListener.this вместо «this».

homeAdapter = new HomeAdapter (getActivity (), event_list, onEventListener.this);

...