2013-08-12 28 views
10

fragmentアクティビティの2つの間で、コールバックinterfaceで簡単に通信できます。そのようにして、私はParentFragmentにインターフェイスを実装して通信しました。ネストされたフラグメント内の2つの子フラグメント間の通信方法

しかし、活動の場合には、私が使っていた -

@Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     try { 
      mCallback = (OnHeadlineSelectedListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() 
        + " must implement OnHeadlineSelectedListener"); 
     } 
    } 

と現在の場合には、私はmCallback = (OnHeadlineSelectedListener) getParentFragment();代わりのmCallback = (OnHeadlineSelectedListener) activity;を使用しています。すべてがうまくいきます。このアプローチは大丈夫ですか?または、代わりに別のスレッドにする必要がありますonAttach()

答えて

7

キャストは、特定のオブジェクトが指定されたインターフェイス(この場合はOnHeadlineSelectedListener)を実装するクラスのインスタンスであることを保証することです。この時点では、どのタイプのオブジェクトであるかは、アクティビティ、フラグメント、その他のものとは無関係です。あなたが必要とするインターフェイスを実装している限り、それはすべて問題ありません。