我读过How to pass and get value from fragment and activity android kotlin的文章
我必须在一个活动中传递一个var mClipboardManager (参见代码A)以进行片段化。
我怎样才能通过变量?以及如何获得var的片段?
码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)
}
}发布于 2018-12-10 04:24:01
您不需要传递,您可以在您的片段中获得这个,但是anw,您可以通过2种方式将mClipboardManager从您的活动传递到您的片段中。
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
}
}https://stackoverflow.com/questions/53699002
复制相似问题