Android 之 使用 Intent 在活动间传递数据

Android 之 使用 Intent 在活动间传递数据,第1张

概述 •准备工作新建一个项目,选择AddNoActivity;打开项目后,将项目模式手动改成Project模式;点击app/src/main/java, 右击->New->Activity->EmptyActivity ;命名为FirstActivity,并勾选上LauncherActivity,表明FirstActivity为当前APP的主活动

 

•准备工作

  新建一个项目,选择 Add No Activity;

  打开项目后,将项目模式手动改成 Project 模式;

  点击 app/src/main/java, 右击->New->Activity->Empty Activity ;

  命名为 FirstActivity,并勾选上 Launcher Activity,表明 FirstActivity 为当前 APP 的主活动;

  点击 FINISH 完成创建;

FristActivity.java
public class FirstActivity extends AppCompatActivity {    private button btn1;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_first);        btn1 = findVIEwByID(R.ID.btn_1);        btn1.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {            }        });    }}
activity_first.xml
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:padding="10dp">    <button        androID:ID="@+ID/btn_1"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_centerInParent="true"        androID:text="First Activity"        /></relativeLayout>

  再新建一个 SecondActivity,步骤同上,不过这个不需要勾选 Launcher Activity。

SecondActivity.java
public class SecondActivity extends AppCompatActivity {    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_second);    }}
activity_second.xml
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:padding="10dp">        <TextVIEw        androID:ID="@+ID/tv"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_centerInParent="true"        androID:textSize="20sp"/></relativeLayout>

  代码内容都很简单,这里不再赘述;

•向下一个活动传递数据

  使用 Intent 不仅可以启动一个活动,还可以在启动活动的时候传递数据

  接下来我们就看看如何传递;

 

  Intent 中提供了一系列 putExtra() 方法的重载;

  该方法可以把我们想要传递的数据暂存在 Intent 中;

  通过 Intent 启动了另一个活动后,只需要把这些数据从 Intent 中取出来就可以了;

  修改 FirstActivity.java 中的代码;

FirstActivity.java
public class FirstActivity extends AppCompatActivity {    private button btn1;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_first);        btn1 = findVIEwByID(R.ID.btn_1);        btn1.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);                String data = "向下一个活动传递数据";                intent.putExtra("data",data);                startActivity(intent);            }        });    }}

  通过 Intent 启动 SecondActivity,并通过  putExtra() 方法传递了一个字符串 data;

   putExtra() 接受两个参数:

第一个参数是键

用于后面从 Intent 中取值

第二个参数是值

真正要传递的数据

  然后,我们在 SecondActivity 中将该数据取出,并设置到 TextVIEw 上;

SecondActivity.java
public class SecondActivity extends AppCompatActivity {    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_second);        Intent intent = getIntent();        String data = intent.getStringExtra("data");        TextVIEw tv = findVIEwByID(R.ID.tv);        tv.setText(data);    }}

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

  然后调用  getStringExtra()  方法,传入相应的键值,就可以得到传递的数据了;

  通过  setText() 方法将其显示在 UI 界面上;

运行效果

  

 

总结

以上是内存溢出为你收集整理的Android 之 使用 Intent 在活动间传递数据全部内容,希望文章能够帮你解决Android 之 使用 Intent 在活动间传递数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1047909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存