学习了Android有一段时间了,我们经常会用到的就是启动另一个Activity,需要传递一些数据,记得刚开始学习Android时,那时啥都不知道,我在想怎么才能把数据传递给下一个页面的,那时感觉这个好神奇,废话不多说,带你们走进这神奇的世界。
一、startActivity启动,向下一个Activity传递数据:
在MainActivity代码如下:
//设置将要跳转的Activity
Intent intent=new Intent(MainActivity.this, FirstActivity.class);
//获取输入的文本
String num=etNum.getText().toString();
//把数据放入到intent中
intent.putExtra("number", num);
//启动
startActivity(intent);
在FirstActivity中代码如下:
//获取Intent
Intent intent=getIntent();
//从Intent里面获取数据
String show=intent.getStringExtra("number");
//显示数据
showNum.setText(show);
效果图如下:
二startActivityForResult传递数据
在FirstActivity中,代码如下:
Intent intent = new Intent(FirstActivity.this, MainActivity.class);
startActivityForResult(intent, REQUEST);// REQUEST代表请求码
在接收方MainActivity中
//实例化一个intent
Intent intent=new Intent();
//获取输入的文本
String num=etNum.getText().toString();
intent.putExtra("number", num);
//设置返回结果
setResult(RESULT_OK, intent);//RESULT_OK响应码
结果返回了,我们需要获取呀,这里我们就需要在FirstActivity。重写onActivityResult方法,来处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
// 判断请求码
if (requestCode == REQUEST) {
// 判断响应码
if (resultCode == RESULT_OK) {
// 获取数据
String num = intent.getStringExtra("number");
showNum.setText(num);
}
}
super.onActivityResult(requestCode, resultCode, intent);
}
其中有个地方要注意就是请求码REQUEST必须大于等于0,否则获取不到数据。
效果图:
两种传递方式就是这么简单,是不是学习过后感觉,原本神奇的东西,你也可以做出来呀!!
本人小菜鸟,如果有不对的地方,希望大牛们指出来,我会修正的,谢谢~~~