iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android Activity与Fragment之间的跳转实例详解
  • 570
分享到

Android Activity与Fragment之间的跳转实例详解

activityfragmentAndroid 2022-06-06 04:06:05 570人浏览 泡泡鱼
摘要

Activity及Fragment之间的跳转 直接跳转 基本使用方法 public class MainActivity extends AppCompatActivity

Activity及Fragment之间的跳转

直接跳转

基本使用方法


public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  public void jump(View view) {
    Intent intent = new Intent(this, VideoPlayActivity.class);
    intent.putExtra("video_id", "1");
    startActivity(intent);
  }
}

public class VideoPlayActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_video_play);
    Intent intent = getIntent();
  }
}

借助工具类

然而并没什么卵用


public static void startActivity(Context context, Class clazz,Bundle data) {
  Intent intent = new Intent(context, clazz);
  if(data != null){
    intent.putExtras(data);
  }
  context.startActivity(intent);
}

推荐方案

把new Intent()放在目标Activity,这样可以onCreate里的getIntent形成对应 更容易理解和管理一个出口,多个入口的情况 较方便维护传递数据的key和value(即key由目标Activity来定义,value是实际的来源)

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  public void jump(View view) {
    startActivity(VideoPlayActivity.newIntent(this, "1"));
  }
}

public class VideoPlayActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_video_play);
  }
  public static Intent newIntent(Context context, String vid) {
    Intent intent = new Intent(context, VideoPlayActivity.class);
    intent.putExtra("video_id", vid);
    return intent;
  }
}

Fragment跳转

首先需要一个空的构造方法,Fragment恢复重建要使用。 使用newInstance代替构造方法传参 在Fragment.onCreate方法获取实参

public class MainFragment{
  public MainFragment() {
    // Required empty public constructor
  }
  public static MainFragment newInstance(int pos) {
    MainFragment fragment = new MainFragment();
    Bundle args = new Bundle();
    args.putInt("pos", pos);
    fragment.setArguments(args);
    return fragment;
  }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
      pos = getArguments().getInt("pos");
    }
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:Android基础之Fragment与Activity交互详解Android 管理Activity中的fragmentsAndroid中fragment与activity之间的交互(两种实现方式)Android Activity与Fragment实现底部导航器Android应用开发中Fragment与Activity间通信示例讲解Android中Activity和Fragment传递数据的两种方式Android Fragment与Activity之间的相互通信实例代码详解Android activity与fragment之间的通信交互Android 中Fragment与Activity通讯的详解android横竖屏切换时候Activity的生命周期Android Activity 横竖屏切换的生命周期Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能的方法


--结束END--

本文标题: Android Activity与Fragment之间的跳转实例详解

本文链接: https://www.lsjlt.com/news/22402.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作