Как я могу передать переменную ClipboardManager в Fragment в Kotlin? - PullRequest
0 голосов
/ 10 декабря 2018

Я прочитал статью Как передать и получить значение из фрагмента и активности android kotlin

Я должен передать var mClipboardManager (см. Код A) в упражнении в Fragment.

Как я могу передать вар?и как получить переменную во фрагменте?

Код A

   private lateinit var mClipboardManager: ClipboardManager 

    private val aPrimaryClipChangedListener = ClipboardManager.OnPrimaryClipChangedListener {
        if (mClipboardManager.hasPrimaryClip() && mClipboardManager.primaryClipDescription.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN) ) {
            var pasteData: String = ""
            val item = mClipboardManager.primaryClip.getItemAt(0)
            pasteData = item.text.toString().trim()
            addClipboardRecord(pasteData)
        }
    }

1 Ответ

0 голосов
/ 10 декабря 2018

Вам не нужно проходить, вы можете получить это в своем фрагменте, но, кроме того, вы можете передать mClipboardManager из вашей деятельности в свой фрагмент 2-мя способами

1.Установите значение из вашей деятельности.

Сначала получите экземпляр фрагмента, используя getFragmentManager().findFragmentByTag("YourFragmentTag")

в своем фрагменте, создайте метод

public void setClipboardManager(ClipboardManager clipboardManager) {
  // here you get an instance of clipboardManager, do anything you want
}

и вызовите этот методв вашей деятельности:

fragment.setClipboardManager(mClipboardManager)

2 .Получите значение mClipboardManager из своего фрагмента

Сначала создайте метод в своей деятельности

public ClipboardManager getClipboardManager() {
   return mClipboardManager;
}

, затем в

@Override public void onAttach(Context context) {
        super.onAttach(context);
        if (getActivity() instanceof YourActivity) {
            ((YourAcitivity) getActivity()).getClipboardManager()
            // here you get an instance of clipboardManger, do anything you want
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...