1

各クラスに同じメニュー バーが含まれるように xml を設定しました。ただし、メニューバーを使用するすべてのクラスで、ボタン onClick によって呼び出される各メソッドを複製する必要があります。これを回避する方法はありますか?他のクラスを拡張しようとしましたが、すべてのクラスがすでにアクティビティを拡張しており、Android で複数のクラスを拡張することはできません。

例: メニュー バーにはボタン doStuff があります。クラス A にはメニュー バーが含まれます。クラス A は doStuff を実装します。クラス B にはメニュー バーが含まれます。クラス B は doStuff を実装します。

どちらもまったく同じ方法で同じメソッドを実装しています。これらのメソッド (doStuff など) を一度定義して、各ボタンでそのメソッドを呼び出す方法はありますか?

4

2 に答える 2

1

私の解決策は、各ボタンがメソッドを呼び出すようにすることでした。これは、ボタンを使用するすべてのクラスで繰り返されました。次に、これらの個々のメソッドが中央のメソッドを呼び出し、変更を繰り返すのではなく、1 つの場所からコードを変更できるようにしました。

例: メニュー バーにはボタン doStuff があります。クラス A にはメニュー バーが含まれます。クラス A は doStuff を実装します。クラス B にはメニュー バーが含まれます。クラス B は doStuff を実装します。

解決策: メニュー バーにボタン doStuff があります。クラス A にはメニュー バーが含まれます。クラス A は、呼び出しを中央クラスに参照するハンドラーを実装します。クラス B にはメニュー バーが含まれます。クラス B はハンドラーを実装します。

于 2012-12-26T20:11:56.030 に答える
0

メソッドを実装する別のクラスを作成doStuff()し、すべてのクラスでボタンのリスナーのみを設定できます。setOnClickListener()呼び出して(またはXMLファイルで、ただし、別のクラスメソッドを呼び出すことができるかどうかはわかりません)、常にリスナーを設定する必要があります。クラスからいくつかのビューが必要な場合は、それらをパラメーターとして渡すことができます。

于 2012-12-25T19:53:51.850 に答える