第一行代码:Android(2nd ed)(33):先从看得到的入手——探究活动 2.3.4

阅读数:26 2019 年 10 月 23 日 04:54

第一行代码:Android(2nd ed)(33):先从看得到的入手——探究活动 2.3.4

(使用 Intent 在活动之间穿梭:向下一个活动传递数据)

经过前面几节的学习,你已经对 Intent 有了一定的了解。不过到目前为止,我们都只是简单地使用 Intent 来启动一个活动,其实 Intent 还可以在启动活动的时候传递数据,下面我们来一起看一下。

在启动活动时传递数据的思路很简单,Intent 中提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在 Intent 中,启动了另一个活动后,只需要把这些数据再从 Intent 中取出就可以了。比如说 FirstActivity 中有一个字符串,现在想把这个字符串传递到 SecondActivity 中,你就可以这样编写:

复制代码
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = "Hello SecondActivity";
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("extra_data", data);
startActivity(intent);
}
});

这里我们还是使用显式 Intent 的方式来启动 SecondActivity,并通过putExtra()方法传递了一个字符串。注意这里putExtra()方法接收两个参数,第一个参数是键,用于后面从 Intent 中取值,第二个参数才是真正要传递的数据。

然后我们在 SecondActivity 中将传递的数据取出,并打印出来,代码如下所示:

复制代码
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
Log.d("SecondActivity", data);
}
}

首先可以通过getIntent()方法获取到用于启动 SecondActivity 的 Intent,然后调用getStringExtra()方法,传入相应的键值,就可以得到传递的数据了。这里由于我们传递的是字符串,所以使用getStringExtra()方法来获取传递的数据。如果传递的是整型数据,则使用getIntExtra()方法;如果传递的是布尔型数据,则使用getBooleanExtra()方法,以此类推。

重新运行程序,在 FirstActivity 的界面点击一下按钮会跳转到 SecondActivity,查看 logcat 打印信息,如图 2.20 所示。

第一行代码:Android(2nd ed)(33):先从看得到的入手——探究活动 2.3.4

图 2.20 SecondActivity 中的打印信息

可以看到,我们在 SecondActivity 中成功得到了从 FirstActivity 传递过来的数据。

评论

发布