2017-03-04 13 views
0

標準アプローチを使用してアクティビティとフラグメントの間で通信したいが、何かにぶつかりました。どうしてか分かりません?ここ はBottomSheetDialogFragmentのための私のコードです:
BottomSheetDialogFragmentで定義されたインタフェース関数のアクティビティ実装が呼び出されていません

@override 
    public void onClick(View v) { 
     if (v.getId() == R.id.camera_icon) { 
      photoShareCommunicator.photoShare(10); 
     } 
    } 

と活動側の私が主な活動でphotoShare()を実装しているよう:

@Override 
    public void photoShare(int resultCode) { 
     Log.d("shiv", "Something click!!!"); 
    } 

そして photoShareCommunicatorは次のように定義されます:

@Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 
     try{ 
      photoShareCommunicator = (PhotoShareCommunicator) context; 
     } catch (ClassCastException e) { 
      Log.d("Shiv", "Class Cast Exception!!! : " + e); 
     } 
    } 

今、なぜphotoShare()の機能がメインアクティビティで実行されていないのですか? ヘルプが必要ですか?
ありがとうございます。

+0

誰か教えてください。それは非常に必要です – Shiv

+0

あなたのコードの詳細を表示してください。 'R.id.camera_icon'をクリックするとonClick()が呼び出されます(チェックするにはonClickにログステートメントを入れます)?あなたのインターフェース定義はどこですか?コールバックをどこに設定していますか? –

+0

@SoundConceptionはいonclickが呼び出され、Interfaceはフラグメント内で定義されます。コールバックは "PhotoShareCommunicator"クラス内で設定されます。 – Shiv

答えて

0

アンドロイドスタジオではまず動作しません。だから、私はアプリをアンインストールして、デバイスにインストールしました。今はすべてが問題ありません。

関連する問題