使用android:onClick与另一个活动的方法?

时间:2013-02-02 15:34:46

标签: android attributes onclick

我的菜单xml包含在我的活动中,我使用onClick属性而不是绑定每个startActivity。

我的问题是,如何在xml onClick attr上定义调用位于mainActivity上的方法?

我想过像android这样的东西:onClick =“mainActivity.doSomething”,但它不起作用。

2 个答案:

答案 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中执行操作的正确方法。