1

ユーザーが AlertDialog オプションをクリックしたときに発生する可能性のあるすべてのアクションに共通の場所/クラスを作成しています。このリンクを見つけましたが、概念を理解するのに実際には役立ちません。これが私がやろうとしていることです。

  1. Activity から拡張されたクラス (ClassA) と、ListActivity から拡張された別のクラス (ClassB) があります。
  2. 呼び出された場所に関係なく、警告ダイアログがポップアップ表示されます。
  3. ClassA で拡張された BaseRootActivity クラスを作成しました。ClassB は RootListActivity クラスから拡張されるため、BaseRootActivity 内にあるメソッド、特にコンテキスト メソッドを使用するメソッドを呼び出すことができません。

リンクに基づいて、2 つの個別の汎用リスト アクティビティを作成できますが、両方のクラスでコードが複製されます。それは避けたいと思います。それを行う方法はありますか、答えが指定されたリンクにある可能性があることは理解していますが、ユーザーが述べている根底にあるロジックを実際に理解することはできません。これについて何か助けていただければ幸いです。

4

1 に答える 1

1

継承よりもコンポジションを常に優先する必要があります。したがって、2つの良い選択肢があります。

  • ダイアログロジックを、ClassAandから使用する3番目のクラスに配置するだけですClassB(拡張するのではなく、使用するだけです)。
  • Fragments APIを使用します(互換性ライブラリを使用して、古いバージョンのAndroidで利用できるようにすることができます)。そこにはDialogFragment、基本的に分離されたクラスでダイアログを作成するように強制するというクラスがあり(ちなみに、これは素晴らしいアイデアです)、最初の選択に従うことを選択した場合に直面する可能性のある問題を処理するのに役立ちます。
于 2012-04-11T03:43:29.377 に答える