2016-08-25 13 views
1

フラグメントにsetNdefMessageCallbackを呼び出したいが、その関数に渡す必要のあるパラメーターがわからない。私はそれがgetContext()でなければならないと思うが、それは私にコンパイルエラーを与えるsetNdefPushMessageCallbackメソッドは、それらのパラメータに適用することはできませんと言っている。フラグメントから呼び出されたときに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()); 
} 
+0

ドキュメントを読んでください:

したがって、あなたはこのような何かを行うことができます。それは必要なパラメータについて説明しますhttps://developer.android.com/reference/android/nfc/NfcAdapter.html – 0xDEADC0DE

+0

ドキュメントを読んでも、最初と2番目のパラメータを示すものはわかりません –

答えて

1

API documentationはこれでかなり明確です。これは、メソッドシグネチャである:

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

最初のパラメータ(callback)はCreateNdefMessageCallbackインタフェースを実装するクラスのインスタンスです。これは、プッシュされるべきNDEFメッセージをアセンブルできるコールバックを受け取るべきオブジェクトです。フラグメントからメソッドsetNdefPushMessageCallback()を呼び出すので、通常、フラグメント自体を使用します(つまり、thisを渡し、フラグメント宣言にimplements句を追加するか、フラグメントから制御できる別のオブジェクト)。

2番目のパラメータ(またはそれ以上のパラメータ)は、アクティビティで、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; 
    } 
関連する問題