扫码关注官方订阅号
intent实现activity之间的跳转。 能不能将跳转的这一丢东东写成一个功能函数或者封装成类,以后用到的时候调用就行了,要不然每次都是写相同的代码,太冗余了,求大神指点。
认证高级PHP讲师
首先Android系统API这么设计没有问题,Activity之间跳转要做配置,传参数,Android已经用Intent把这些东西封装了。就系统API这一层次而言,Intent本身已经算是做了最大限度的封装。如果在你特定项目里,Activity之间的跳转有一些相同的配置或者传同类参数,你当然可以自己再封一层。你觉得自己封一层有什么困难吗?你需要什么样的指导呢?
我不主张BaseActivity这种往已有继承关系里打楔子的实现方式,会增加耦合性。你就写一个类方法就好,比如下面这样。名字是我随便起的。
public class ActivityUtil{ public static void jump(Activity from,Class to){ Intent intent = new Intent(); intent.setClass(from,to); startActivity(intent); from.finish(); } } findViewById(R.id.dilan_shoucang).setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { ActivityUtil.jump(Gerenxinxi.this,Shoucang.class); } });
ActivityUtil还可以扩展,比如
public class ActivityUtil{ public static void jump(Activity from,Class to,Budle data){ Intent intent = new Intent(); intent.setClass(from,to); if(data!=null){ intent.putExtras(data); } startActivity(intent); from.finish(); } public static void jump(Activity from,Class to){ ActivityUtil.jump(from,to,null); } }
这种东西不止一种实现方法,也都很简单,关键在于耦合度要低,又方便扩展和复用。
可以自己封装一个BaseActivity
在实际开发过程中,打开Activity的时候,经常要附带参数,或者设置Intent的flag等等,写多了就自然明白这些封装很多情况下是提升不了多少的。 当然,如果遇到作为入口类,刚好需要,自己抽一个方法就行了。。。楼上的ActivityUtil就可能解决你的需求。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我不主张BaseActivity这种往已有继承关系里打楔子的实现方式,会增加耦合性。你就写一个类方法就好,比如下面这样。名字是我随便起的。
ActivityUtil还可以扩展,比如
这种东西不止一种实现方法,也都很简单,关键在于耦合度要低,又方便扩展和复用。
可以自己封装一个BaseActivity
在实际开发过程中,打开Activity的时候,经常要附带参数,或者设置Intent的flag等等,写多了就自然明白这些封装很多情况下是提升不了多少的。
当然,如果遇到作为入口类,刚好需要,自己抽一个方法就行了。。。楼上的ActivityUtil就可能解决你的需求。