作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 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/
我想在 fragment 中调用 setNdefMessageCallback,但我不知道必须传递给该函数的参数。我认为它应该是 getContext() 但它给我一个编译错误,指出方法 setNde
我是一名优秀的程序员,十分优秀!