从一个Activity转到另一个Activity

本文深入探讨了Android开发中如何利用Intent进行Activity间的跳转,并详细介绍了如何在跳转过程中传递数据。从基本的Intent使用开始,到实现数据的双向传递,最后展示了如何将数据返回给上一个活动,全面覆盖了Intent在数据共享中的关键应用。

1.MainActivity:

  Intent intent=new Intent(MainActivity.this,SecondActivity.class);  //Intent 中的参数第一个为相邻的Activity,第二个为要转到的Activity

     startActivity(intent);   

2.  实现跳转并向下一个活动传递数据

MainActivity:

   String data="this"

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

    Intent.putExtra("extra_data",inputText);

     startActivity(intent);   

 SeconActivity:

    Intent intent=getIntent();   //首先通过getIntent()方法获取到用于启动SecondActivity的Intent

   String data=intent.getStringExtra("extra_data");  // 再通过getStringExtra()方法传入相应的键值,这里传的是字符串,也可传int等,即getIntExtra()...

   Log.d("SecondActivity",data);

3.返回数据给上一个活动

    startActivityForResult()方法也用于启动活动,但这个方法期望在活动销毁时返回一个结果给上一个活动。接受两个参数,第一个Intent,第二个是请求码,用于在之后的回调中判断数据的来源。




一个 Activity 转到一个 Activity 中的 Fragment,可以通过在目标 Activity 中添加一个用于显示 Fragment 的容器 View,并在该 Activity 中创建对应的 Fragment 来实现。 具体步骤如下: 1. 在目标 Activity 的布局文件中添加一个用于显示 Fragment 的容器 View。 ``` <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 2. 在目标 Activity 中创建对应的 Fragment,并将其添加到容器 View 中。 ``` MyFragment myFragment = new MyFragment(); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fragment_container, myFragment); fragmentTransaction.commit(); ``` 在上述代码中,MyFragment 是目标 Activity 中需要显示的 Fragment,R.id.fragment_container 是在布局文件中定义的容器 View 的 ID。 3. 在源 Activity 中使用 Intent 启动目标 Activity。 ``` Intent intent = new Intent(SourceActivity.this, TargetActivity.class); startActivity(intent); ``` 注意,这里启动的是目标 Activity,不是目标 Fragment。 这样就可以从一个 Activity 转到一个 Activity 中的 Fragment 了。需要注意的是,在目标 Activity 中添加 Fragment 时,最好使用 FragmentManager 来管理 Fragment 的生命周期,可以避免一些不必要的问题。同时,在目标 Fragment 中也需要根据需要处理生命周期方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值