我有一个分成片段的应用程序界面。我想创建一个可以从不同类型的对象(比如说 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)
。有什么解决办法吗?