我的菜单xml包含在我的活动中,我使用onClick属性而不是绑定每个startActivity。
我的问题是,如何在xml onClick attr上定义调用位于mainActivity上的方法?
我想过像android这样的东西:onClick =“mainActivity.doSomething”,但它不起作用。
答案 0 :(得分:5)
在xml中使用onclick是bad idea.事实是它只是试图找到当前类正在使用它的方法。一种方法如果你真的想这样做是这样的:
startActivity:
public void callOtherMethod(){
mainActivity.doStuff();
}
mainActivity:
public static void doStuff(){
//dosomething.
}
startActivity.xml:
android:onClick="callOtherMethod"
您的doStuff方法也必须是静态的,除非您可以获取目标方法Activity的实例。
答案 1 :(得分:1)
我想到了类似的东西 android:onClick =“mainActivity.doSomething”,但它不起作用。
这是正常的,Android会查找当前活动中使用该布局文件的xml布局中仅声明的onClick
方法(无论如何看起来都没有意义在其他活动中,因为当您调用该方法时,这些活动可以被很好地销毁。)
我的问题是,如何在xml上定义onClick attr来调用 例如,位于我的mainActivity上的方法?
你应该解释你想要做什么。应该避免从另一个Activity
访问Activity
的方法,这不是在Android中执行操作的正确方法。