私の質問は設計上の質問です。私は2つのカスタムフラグメントCustomFrag1
とCustomFrag2
を持っています。これらのフラグメントはいずれも方法がswapCursor
です。2つの異なるクラスを共通の方法で呼び出す方法はありますか?
CustomFrag1
:
public class CustomFrag1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
// .... code
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// .... code
MyAdapter mAdapter = new MyAdapter();
// .... code
}
public static void swapCursor(final Cursor cursor, Activity ctx){
// .... code
}
}
CustomFrag2
:
public class CustomFrag1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
// .... code
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// .... code
MyAdapter mAdapter = new MyAdapter();
// .... code
}
public static void swapCursor(final Cursor cursor, Activity ctx){
// .... code
}
}
私は各フラグメントのために別々のアダプタクラスを作成する必要はありません。私はしかし、アダプタクラスのswapCursor
に電話したいと思います。アダプタがCustomeFrag1
からインスタンス化されている場合はswapCurosr
にカーソルを入れ替えてCustomFrag1
に入れます。アダプタがCustomeFrag2
からインスタンス化されている場合、swapCurosr
はCustomFrag2
にカーソルを入れ替えたいと思っています。
それは...断片のインスタンスに
MyAdapter mAdapter = new MyAdapter(this);
を渡す...何とかswapCursor
がメソッドとして定義された一般的な変数とそのインスタンスを表現することは可能ですか?そうでない場合、私はどのような戦略をとることができますか?インターフェース?ジェネリック?何か?
編集私はswapCursor
を継承しようとしたが、それは単に親とない子の上にカーソルをスワップアウトします。
*私はswapCursorを継承しようとしましたが、カーソルを親子で置き換えてしまいました*、なぜですか? – Blackbelt