IはコールスーパースーパークラスonResume()とonCreae()
public class A extends Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//other stuff
}
@Override
public void onResume()
{
super.onResume();
someFunctionOnlyUsefulInFragmentA()
}
}
そして第二のクラスのようにAとB Bは、フラグメントAを拡張する二つの断片を有する:
public class B extends A{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//other stuff
}
@Override
public void onResume()
{
super.onResume();
//Problem! I don't want to call function "someFunctionOnlyUsefulInFragmentA()"
}
}
問題はフラグメントAのonResume()
とonCreate()
メソッドですべてのコードを実行したくないということですが、フラグメントBでのみ使用されるカスタムコードもあります。しかし、アンドロイドはsuper.onCreate()
とsuper.onResume()
を呼び出します。
フラグメントAのコードを呼び出さずに、フラグメントBのonCreate()
またはonResume()
メソッドでカスタムコードを実行するにはどうすればよいですか?
コードデザイン全体を変更する必要がありますか?もしそうなら、どうですか?
次に、フラグメントAのonResumeにコードを入れないでください。 –
'super.onCreate()'と 'super.onResume()'を呼び出す必要はありません。 「Androidはあなたを強制します」とはどういう意味ですか? –
さて、フラグメントAのonResume()メソッドで実行されるコードが必要です!スーパーコールを含まないと、アプリがクラッシュします。 – Merlin1896