0

我有一个分成片段的应用程序界面。我想创建一个可以从不同类型的对象(比如说 View 或 KeyEvent)调用的方法,而不使用侦听器:我不想以编程方式将元素创建到布局中。

所以,如果我只使用 View 元素,我将创建一个这样的方法

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

并通过使用 item 将所有元素链接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

我建议使用两种方法,一种用于视图,另一种用于键事件,如果您想将处理捆绑到 ONE 方法中,只需通过前面的方法调用第三种方法。

于 2012-07-10T14:38:08.200 回答