可从多个对象调用的方法

时间:2012-07-10 14:31:33

标签: java android

我有一个分为片段的应用程序界面。我想创建一个可以从不同类型的对象(比如一个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)的方法。 任何解决方案?

1 个答案:

答案 0 :(得分:0)

我建议使用两种方法,一种用于关键事件的视图,如果要将处理捆绑到一种方法,只需通过以前的方法调用第三种方法。