我有一个分为片段的应用程序界面。我想创建一个可以从不同类型的对象(比如一个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)
的方法。
任何解决方案?
答案 0 :(得分:0)
我建议使用两种方法,一种用于关键事件的视图,如果要将处理捆绑到一种方法,只需通过以前的方法调用第三种方法。