Android跳转问题

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

阅读 3.3k
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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题