加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android – 如何避免活动之间重复的代码

发布时间:2020-12-15 05:07:24 所属栏目:Java 来源:网络整理
导读:这是一个普遍的问题,但我会给你一个具体的例子. 我在应用程序中有很多活动.在所有活动中,都有一个Facebook按钮.当您单击该按钮时,它会将您带到特定的Facebook页面.我希望按钮在每个页面上的行为方式完全相同. 现在,在每个Activity中,我为Facebook按钮创建一
这是一个普遍的问题,但我会给你一个具体的例子.

我在应用程序中有很多活动.在所有活动中,都有一个Facebook按钮.当您单击该按钮时,它会将您带到特定的Facebook页面.我希望按钮在每个页面上的行为方式完全相同.

现在,在每个Activity中,我为Facebook按钮创建一个onClickListener()并制作意图并启动活动.每个Activity都有相同的代码.

编写此代码一次并将其包含在多个活动中的最佳方法是什么?反正有没有包含其他.java文件?

我知道可以使用的一个解决方案是创建一个扩展Activity的基本CustomActivity类,然后让所有活动扩展CustomActivity.然后将我的onClickListener()代码放在CustomActivity中.我是Java的新手,但我不确定这是不是最好的方法.我的一些活动已经按原样扩展了其他自定义活动类,所以扩展更多东西的东西可能会变得有点混乱,我不知道.

UPDATE

扮演魔鬼的拥护者:让我说我选择了继承路线,并创建了一些我希望我的活动扩展的CustomActivity. CustomActivity将包含我需要用于所有活动的一堆通用代码,包括但不限于Facebook按钮功能.当有一个Activity我需要使用CustomActivity中的通用代码但该特定Activity中没有Facebook按钮时会发生什么?

解决方法

共同的基类可能是最好的方法. (如果您的某些活动扩展了Activity并且某些扩展了Activity子类(例如ListActivity),那么它的效果不是很好.

另一种方法是创建一个单独的类来实现单击侦听器的逻辑.这并没有消除所有重复的代码 – 每个活动仍然需要实例化和注册一个监听器 – 但是只需要在监听器类中写入一次该逻辑.

在任一替代方案中,您可以考虑将android:onClick属性分配给按钮.这样你就不需要注册点击监听器了;你只需要在每个活动中实现目标方法.这对于基类方法特别有用.

UPDATE

假设你去了继承路线,你想要一个没有Facebook按钮的活动.如果您使用的是android:onClick技术,那么您不必在代码中执行任何不同的操作 – 因为没有按钮会调用您的onClick方法,该方法只会坐在那里无所事事.如果要在代码中安装OnClickListener,则只需在注册侦听器之前测试该按钮是否存在(即,findViewById()没有返回null).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读