我设置了我的xml,以便每个类包含相同的菜单栏。我必须复制每个使用菜单栏的类中的按钮onClick调用的每个方法。有没有解决的办法?我试图扩展另一个类,但是每个类都已经扩展了活动,你不能在Android中扩展多个类。
实施例: 菜单栏有按钮doStuff。 A类包括菜单栏。 A类实现了doStuff。 B类包括菜单栏。 B类实现了doStuff。
他们都以完全相同的方式实现相同的方法。有没有办法定义这些方法(如doStuff)一次并让每个按钮调用该方法?
答案 0 :(得分:1)
我的解决方案是让每个按钮调用一个方法。所有使用按钮的类都重复了这一点。然后将这些单独的方法称为中心方法,以便可以从一个位置更改代码,而不必重复更改。
示例:菜单栏有按钮doStuff。 A类包括菜单栏。 A类实现了doStuff。 B类包括菜单栏。 B类实现了doStuff。
解决方案:菜单栏有按钮doStuff。 A类包括菜单栏。 A类实现将调用引用到中心类的处理程序。 B类包括菜单栏。 B类实现了处理程序。
答案 1 :(得分:0)
您可以创建另一个实现doStuff()
方法的类,然后只为每个类中的按钮设置侦听器。您将始终必须通过调用setOnClickListener()
(或在XML文件中,但我不知道您是否可以调用另一个类方法)来设置侦听器。如果您需要班级中的某些视图,则可以将它们作为参数传递。