0

アプリケーションインターフェイスをフラグメントに分割しています。リスナーを使用せずに、さまざまな種類のオブジェクト(たとえば、ViewまたはKeyEvent)から呼び出すことができるメソッドを作成したいと思います。プログラムで要素をレイアウトに作成したくありません。

したがって、View要素のみを使用している場合は、次のようなメソッドを作成します。

public void myMethod(View view) {
   switch(view.getId()) {
   ...
   }
}

onClickアイテムを使用してすべての要素を.xmlファイルにリンクします。それは魅力のように機能します。

他のタイプのオブジェクトでもメソッドを呼び出す方法はありますか?特定の状況では、KeyEventを介してそのメソッドを呼び出す必要があるため、次の方法で試しました。

public void myMethod(Object caller) {
   if(caller instanceof View) {
      //button pressed
      ...
   } else if (caller instanceof KeyEvent) {
      //key pressed
      ...
   }
}

それは機能しません。ボタンを押すと実行時に例外が発生します。署名付きのメソッドが必要myMethod(View view)です。解決策はありますか?

4

1 に答える 1

0

ビュー用とキーイベント用の 2 つのメソッドを使用することをお勧めします。処理を 1 つのメソッドにまとめたい場合は、前のメソッドで 3 番目のメソッドを呼び出すだけです。

于 2012-07-10T14:38:08.200 に答える