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()の機能がメインアクティビティで実行されていないのですか? ヘルプが必要ですか?
ありがとうございます。
誰か教えてください。それは非常に必要です – Shiv
あなたのコードの詳細を表示してください。 'R.id.camera_icon'をクリックするとonClick()が呼び出されます(チェックするにはonClickにログステートメントを入れます)?あなたのインターフェース定義はどこですか?コールバックをどこに設定していますか? –
@SoundConceptionはいonclickが呼び出され、Interfaceはフラグメント内で定義されます。コールバックは "PhotoShareCommunicator"クラス内で設定されます。 – Shiv