通常は一例に語った活動通信にフラグメントを実装している:厳密に結合されたフラグメントは、特定の状況下ではAndroidでも問題ありませんか?
MyActivity extends Activity implements MyInterface {
...
@Override
public void myMethod() {
// Do something....
}
...
}
MyFragment extends Fragment {
...
private void aMethod() {
((MyInterface) getActivity()).myMethod();
}
...
}
事実は少なからず私のプロジェクトでは断片は、「分割らimperaに異なるモジュール内の既存の活動を分解するだけで使用されていることです"ファッション(おそらく、アクティビティが複雑すぎるときのリファクタリング中)。これらの断片の1つを別の活動(断片が抽出されたものとは異なる)に付けることは、単に意味をなさない。
だから私の例では、私は通常で終わる:
MyActivity extends Activity {
...
void myMethod() {
// Do something....
}
...
}
MyFragment extends Fragment {
...
private void aMethod() {
((MyActivity) getActivity()).myMethod();
}
...
}
のでれる恐れられた質問:なぜ、我々はフラグメントは、常にその活動の内部でのみ使用する場合はインターフェイスを使用する必要がありますか?これは悪い習慣ですか?これらのケースでインターフェイスを使用する利点は何ですか?
'myMethod()'は実際に私のコードではプライベートなパッケージでしたが、質問で正しく報告するのを忘れました。私はそれを編集します。 –
@MarcoRomano私はまだ答えにこの情報を残すでしょう、私はそれを強調することが重要だと思います。人々は時には物事を大きくすると思います。デカップリングは一般的には良い方法であると私は同意しますが、単純なケースではそれを行わないのは必ずしも間違いではありません。最も簡単な解決法は時には最適です。 – Malcolm