0

我有一个应用程序,其顶部菜单如下图所示。这几乎经常用于所有活动。对于布局,我已将其定义在单个 xml 文件中,并用于<include>将其包含在每个布局文件中。我想知道 java 编码中是否有一种方法可以避免声明所有 imageButtons,然后在每个中为它们使用findViewByIdonclick事件活动。前四个图标将作为菜单并在所有布局和活动中可用

4

4 回答 4

2

首先,您要达到的目标是违反 android 标准,这可能会影响 Android 用户的用户体验。相反,在操作栏上添加菜单项。

ActivityBase无论如何,您可以通过定义一个基类(将其命名为)并在其上进行所有初始化和侦听器注册来实现您正在寻找的东西。然后,从该基类扩展。请记住,每个活动都有自己的基类视图实例,并且状态会因活动而异。

于 2013-11-11T07:25:44.887 回答
1

只写在第一个活动中。将其扩展到其他活动,而不是使用android.app.Activity.

例如:

public class SecondActivity extends MainActivity{

}
于 2013-11-11T07:21:54.120 回答
1

尽管您已经接受了答案,但我不同意 Application 类应该用于托管全局方法。它可以用于维护全局状态,但这是另一回事。

正如其他人所说,通过创建一个基 Activity 类来使用继承,然后为所有其他 Activity 扩展它。但是,为了使事情更容易,您可以使用(例如)定义用于布局文件本身中每个按钮的 onClick 方法...

android:onClick="myOnClickMethod"

只要基本 Activity 定义了一个名为 myOnClickMethod (或您选择的任何方法名称)的公共方法,并返回 void 并接受 View 参数,它就可以工作而无需实现 View.OnClickListener 并且无需在 Java 中设置侦听器代码。例子

public class MyBaseActivity extends Activity {

    public void myOnClickMethod(View v) {
        // Get the resource id of v and use switch / case to perform action needed
    }
}

这就是你所需要的。

于 2013-11-11T07:51:31.627 回答
0

将该方法放在扩展 Application 的 MyApplication 类中。因此,它可以被多个活动访问。

于 2013-11-11T07:22:44.397 回答