gpt4 book ai didi

java - 从 fragment 调用时设置 NdefPushMessageCallback 参数

转载 作者:行者123 更新时间:2023-11-30 01:03:33 29 4
gpt4 key购买 nike

我想在 fragment 中调用 setNdefMessageCallback,但我不知道必须传递给该函数的参数。我认为它应该是 getContext() 但它给我一个编译错误,指出方法 setNdefPushMessageCallback 不能应用于这些参数。

@Override
public void onStart() {
super.onStart();
pm = getActivity().getPackageManager();
//procedure that checks is NFC is avaible
checkNfc();

nfcAdapter = NfcAdapter.getDefaultAdapter(getContext());
nfcAdapter.setNdefPushMessageCallback(getActivity(),getActivity());
}

最佳答案

API documentation对此很清楚。这是方法签名:

void setNdefPushMessageCallback (NfcAdapter.CreateNdefMessageCallback callback, 
Activity activity,
Activity... activities)

第一个参数 (callback) 是一个实现了 CreateNdefMessageCallback 接口(interface)的类的实例。这是应该接收回调的对象,您可以在其中组装应该推送的 NDEF 消息。由于您从 fragment 调用方法 setNdefPushMessageCallback(),您通常会使用 fragment 本身(即您传递 this 并在 fragment 声明中添加一个 implements 子句),或者您可以从 fragment 中控制的其他对象。

第二个参数(或更多参数)是您要为其启用 NDEF 消息推送回调的 Activity 。这通常是加载 fragment 的 Activity (this.getActivity())。

因此,你可以这样做:

public class MyFragment extends Fragment implements NfcAdapter.CreateNdefMessageCallback {

@Override
public void onStart() {
...

nfcAdapter.setNdefPushMessageCallback(this, getActivity());

}

public NdefMessage createNdefMessage(NfcEvent event) {
// TODO: assemble an NDEF message

return ndefMessage;
}

关于java - 从 fragment 调用时设置 NdefPushMessageCallback 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39143324/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com