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,完成该全局变量的初始化

 


__EOF__

本文作者我命倾尘
本文链接https://www.cnblogs.com/guobin-/p/12572924.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   我命倾尘  阅读(3158)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示