•准备工作新建一个项目,选择 Add No Activity;
打开项目后,将项目模式手动改成 Project 模式;
点击 app/src/main/java, 右击->New->Activity->Empty Activity ;
命名为 FirstActivity,并勾选上 Launcher Activity,表明 FirstActivity 为当前 APP 的主活动;
点击 FINISH 完成创建;
FristActivity.javapublic 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.javapublic 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.javapublic 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.javapublic 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 在活动间传递数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)