我的应用程序有一个顶级菜单,如下图所示。这几乎经常用于所有活动。对于布局我已经在一个xml文件中定义它并使用<include>
将它包含在每个布局文件中。我想知道在java编码中是否有一种方法可以避免声明所有的imageButtons,然后使用{{每个活动中有1}}和findViewById
个事件。前四个图标将作为菜单,并在所有布局和活动
答案 0 :(得分:2)
首先,您要实现的是针对Android标准,这可能会影响Android用户的用户体验。而是在操作栏上添加菜单项。
无论如何,您可以通过定义基类(将其命名为ActivityBase
)并在其上执行所有初始化和侦听器注册来实现您所需的内容。然后,从该基类扩展。请记住,每个活动都有自己的基类视图实例,状态因活动而异。
答案 1 :(得分:1)
仅在第一个活动中写下它。将其扩展到其他活动,而不是使用android.app.Activity
进行扩展。
例如:
public class SecondActivity extends MainActivity{
}
答案 2 :(得分:1)
虽然您已经接受了答案,但我不同意Application类应该用于托管全局方法。它可以用于维护全局状态,但这是另一回事。
正如其他人所说,通过创建一个基类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
}
}
这就是你所需要的一切。
答案 3 :(得分:0)
将该方法放在扩展Application的MyApplication类中。因此,它可以通过多种活动访问。