1

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

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

我想过类似 android:onClick="mainActivity.doSomething" 但它不起作用。

4

2 回答 2

5

在 xml 中使用 onclick 是个坏主意。事实是它只试图找到当前类正在使用它的方法。如果您真的想这样做,一种方法是:

开始活动:

public void callOtherMethod(){
   mainActivity.doStuff();
}

主要活动:

public static void doStuff(){
//dosomething.
}

开始活动.xml:

android:onClick="callOtherMethod" 

你的 doStuff 方法也必须是静态的,除非你可以获得目标方法 Activity 的实例。

于 2013-02-02T15:41:05.050 回答
1

我想过类似 android:onClick="mainActivity.doSomething" 但它不起作用。

这很正常,AndroidonClick在使用该布局文件的当前活动中查找在 xml 布局中声明的方法(无论如何查看其他活动是没有意义的,因为当您调用该方法时,这些活动可能会被破坏)。

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

你应该解释你想要做什么。Activity 应该避免从另一个访问方法Activity,这不是在 Android 中做事的正确方式。

于 2013-02-02T15:40:15.993 回答