
Android(JAVA)のイベントリスナについて教えてください
>イベントリスナは、ひとつのコールバックメソッドを持つ View クラスのインターフェイスです。それらのメソッドは、リスナが登録されたビューでユーザがUI のアイテムにアクションを起こしたことがトリガとなり Android フレームワークにより呼び出されます
▽6.5 UIイベントハンドリング - ソフトウェア技術ドキュメントを勝手に翻訳
https://sites.google.com/a/techdoctranslator.com …
・なぜ、コールバックメソッドをひとつしか持たないのでしょうか?
・複数持ってはいけないのでしょうか?
・インターフェイスだから?
・言語機能として複数保持出来ないことはないけれども、イベントリスナ的に分かりやすくするため(?)、敢えて機能毎に分けているのでしょうか?
■質問背景
・ドキュメント見てたらそうなってたので、なんでかな? と思い質問しました
・複数インターフェイスにそれぞれ唯一の抽象メソッドを持たせず、1つのインターフェイスに複数の抽象メソッドを持たせたほうが分かりやすいような気もするのですが…
「View.AllListener」に「onClick()」「onLongClick()」みたいなのは何故ダメなのでしょうか?
No.1ベストアンサー
- 回答日時:
>・なぜ、コールバックメソッドをひとつしか持たないのでしょうか?
機能の付与はメソッド単位だからではないでしょうか?
>「View.AllListener」に「onClick()」「onLongClick()」みたいなのは何故ダメなのでしょうか?
いいと思います。自前でコールバックメソッドを持つ複数のインターフェースを継承する、
または実装する抽象クラスを作成すれば良いです。
ただ、MouseListenerで不要なメソッドを空実装するときに感じましたが、
Eclipseなどのクラスのアウトライン機能では空実装が判断できず、見渡しが悪い。
プログラムが無駄に肥大化する。
あとは、UnsupportedExceptionを投げるとかあるのかな?
この辺のインターフェースでは提供されているけど、
機能としては提供されていないメソッドへの対応はいまいち統一されていないので、
不要なメソッドは追加しない方針の方がいいかなーと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
javascriptからjavaを呼び出したい
-
eclipse-Tomcatでのデバッグに...
-
引数は省略できません。とのコ...
-
DataGridViewでセルクリックイ...
-
PDFファイルから別ウィンドウで...
-
コマンドプロンプト実行後に画...
-
worksheets & rows メソッドは...
-
【sendkeysメソッドが動かずに...
-
ASP上のVB SCRIPT記述(result s...
-
エクセルVBAにおけるON TIMEメ...
-
vbaエクセルマクロ RemoveDupli...
-
ウィンドウを最前面にできません
-
C#の動的キャスト
-
C# 静的 (static) メソッドにつ...
-
FEM解析の読み方は?
-
VB.NET イベントハンドラの意識...
-
[VBA]GetSaveAsFilenameメソッ...
-
サーブレット DBにある生年月...
-
WSH(VBScript)で共有フォルダを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
boolean型のフィールドとゲッタ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
eclipse-Tomcatでのデバッグに...
-
CALLされていないメソッドを見...
-
FEM解析の読み方は?
-
エクセルVBAにおけるON TIMEメ...
-
Application.Wait の参照設定
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
drawStringで文字間隔の調整
おすすめ情報