Android开发:在非Activity类中,如何实现跳转到另一个Activity


一、Activity之间相互跳转:

Intent intent=new Intent(MainActivity.this, InfoActivity.class);
startActivity(intent);

  这种是常规操作,无需多做解释。

  使用 Activity的startActivity方法,不会有任何限制,因为Activity继承自Context,重载了startActivity方法

二、非Activity跳转到Activity中:

  这种跳转则需要注意,比如在recyclerview控件的每个view的点击事件中,因为是自定义的Adapter,则需要定义一个运行上下文来启动页面跳转:

  1、定义全局变量

private Context mContext;

  2、使用该全局变量进行页面跳转

Intent intent= new Intent();
intent.setClass(mContext, InfoActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);

  因为context的startActivity方法,需要开启一个新的task,所以要给intent添加flag,值为Intent.FLAG_ACTIVITY_NEW_TASK

  

  注:在使用全局变量context时,要在构造函数里进行初始化,否则会报错。

    在Activity中将MainActivity.this作为参数传入,在Adapter中以Activity类型接受该参数并赋值给context,完成该全局变量的初始化

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM