Android跳转问题
PHP中文网
PHP中文网 2017-04-17 13:23:32
[Android讨论组]

intent实现activity之间的跳转。
能不能将跳转的这一丢东东写成一个功能函数或者封装成类,以后用到的时候调用就行了,要不然每次都是写相同的代码,太冗余了,求大神指点。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
怪我咯

首先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

ringa_lee

在实际开发过程中,打开Activity的时候,经常要附带参数,或者设置Intent的flag等等,写多了就自然明白这些封装很多情况下是提升不了多少的。
当然,如果遇到作为入口类,刚好需要,自己抽一个方法就行了。。。楼上的ActivityUtil就可能解决你的需求。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号