Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从片段调用时的setNdefPushMessageCallback参数_Java_Android_Android Fragments_Nfc_Android Beam - Fatal编程技术网

Java 从片段调用时的setNdefPushMessageCallback参数

Java 从片段调用时的setNdefPushMessageCallback参数,java,android,android-fragments,nfc,android-beam,Java,Android,Android Fragments,Nfc,Android Beam,我想在片段中调用setNdefMessageCallback,但我不知道必须传递给该函数的参数。我认为应该是getContext(),但它给了我一个编译错误,说明方法setNdefPushMessageCallback无法应用于这些参数 @Override public void onStart() { super.onStart(); pm = getActivity().getPackageManager(); //procedure that checks is N

我想在片段中调用
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());
}
在这一点上,我们的立场相当明确。这是方法签名:

void setNdefPushMessageCallback (NfcAdapter.CreateNdefMessageCallback callback, 
                                 Activity activity, 
                                 Activity... activities)
第一个参数(
callback
)是实现
CreateNdefMessageCallback
接口的类的实例。这是应该接收回调的对象,您可以在其中组装应该推送的NDEF消息。由于从片段调用方法
setNdefPushMessageCallback()
,因此通常可以使用片段本身(即传递
this
并将implements子句添加到片段声明中),也可以使用片段中可以控制的另一个对象

第二个参数(或更多参数)是要为其启用NDEF消息推送回调的活动。这通常是加载片段的活动(
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;
    }

请阅读文档。它解释了它需要的参数,甚至阅读了文档,我不明白是什么指示了第一个和第二个参数