活动——向下一个或上一个活动传递数据
2017-10-27 09:45
489 查看
该代码在活动——使用显式Intent所建立的项目下运行
向下一个活动传递数据
目的: FirstActivity中有一个字符串,将字符串传递给SecondActivity中
代码:
修改FirstActivty中代码
解释:
putExtra():接受两个参数
- 第一个参数:键,用于从Intent中取值。
- 第二个参数:真正要传递的数据
代码:
在SecondActivity中将传递的数据取出,并打印
解释:
通过getIntent()方法获得启动SecondAcitvity的Intent,然后用getStringExtra()方法,传入相应的键值,就得到了传递的数据。 如果传递的是整型数据用getIntExtra(),如果传递的是布尔型数据用getBoolExtra()方法。
getStringExtra():用来获取传递的数据。
运行结果:
点击Button 1
返回数据给上一个活动
目的:返回数据给上一个活动
代码:
修改FirstActivity中按钮的点击事件
解释:
startActivityForResult():两个参数
第一个参数:Intent。
第二个参数:请求码,只要是唯一值就可以。
代码:
在SecondActivity中给按钮注册点击时事件,并添加返回数据的逻辑。
解释:
将要传递的数据存放在Intent中,然后调用setResult()方法
setResult():专门用于向上一个活动返回数据。接收两个参数。
第一个参数:用于向上一个活动返回处理结果,一般只使用RESULT_OK或RESULT_CANCELED。
第二个参数:把带有数据的Intent传递回去。
代码:
由于使用startActivityForReslut()方法启动SecondActivity的,在SecondActivity被销毁之后会回调上一个活动的onActivityResult()方法,因此在FirstActivity写这个方法得到返回的数据。
解释:
由于一个活动有可能通过startActivityForReslut()方法启动很多不同的活动,每个活动返回的数据都会调用onActivityResult()方法,因此首先通过检查requestCode的值来判断数据来源,确定数据来源后,在通过resultCode 的值来判断处理结果是否成功。
onActivityResult():带有三个参数。
第一个参数:requestCode,即我们在启动活动时传入的请求码。
第二个参数:resultCode , 即在返回数据时传入的处理结果。
第三个参数:data, 即携带返回数据的Intente。
-
运行结果:
从FirstActivity中进入SecondActivity,再点击Button2返回FirstActivity。
**目的:**SecondActivity通过Back建回到FirstActivity时传递数据。
代码:
在SecondActivity中重写onBackPressed()方法
向下一个活动传递数据
目的: FirstActivity中有一个字符串,将字符串传递给SecondActivity中
代码:
修改FirstActivty中代码
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); } });
解释:
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()方法获得启动SecondAcitvity的Intent,然后用getStringExtra()方法,传入相应的键值,就得到了传递的数据。 如果传递的是整型数据用getIntExtra(),如果传递的是布尔型数据用getBoolExtra()方法。
getStringExtra():用来获取传递的数据。
运行结果:
点击Button 1
返回数据给上一个活动
目的:返回数据给上一个活动
代码:
修改FirstActivity中按钮的点击事件
button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent,1); } });
解释:
startActivityForResult():两个参数
第一个参数:Intent。
第二个参数:请求码,只要是唯一值就可以。
代码:
在SecondActivity中给按钮注册点击时事件,并添加返回数据的逻辑。
button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data_return", "Hello FirstActivity"); setResult(RESULT_OK, intent); finish(); } });
解释:
将要传递的数据存放在Intent中,然后调用setResult()方法
setResult():专门用于向上一个活动返回数据。接收两个参数。
第一个参数:用于向上一个活动返回处理结果,一般只使用RESULT_OK或RESULT_CANCELED。
第二个参数:把带有数据的Intent传递回去。
代码:
由于使用startActivityForReslut()方法启动SecondActivity的,在SecondActivity被销毁之后会回调上一个活动的onActivityResult()方法,因此在FirstActivity写这个方法得到返回的数据。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case 1: if(resultCode==RESULT_OK){ String returnedData = data.getStringExtra("data_return"); Log.d("FirstActivity", returnedData); } break; default: } }
解释:
由于一个活动有可能通过startActivityForReslut()方法启动很多不同的活动,每个活动返回的数据都会调用onActivityResult()方法,因此首先通过检查requestCode的值来判断数据来源,确定数据来源后,在通过resultCode 的值来判断处理结果是否成功。
onActivityResult():带有三个参数。
第一个参数:requestCode,即我们在启动活动时传入的请求码。
第二个参数:resultCode , 即在返回数据时传入的处理结果。
第三个参数:data, 即携带返回数据的Intente。
-
运行结果:
从FirstActivity中进入SecondActivity,再点击Button2返回FirstActivity。
**目的:**SecondActivity通过Back建回到FirstActivity时传递数据。
代码:
在SecondActivity中重写onBackPressed()方法
@Override public void onBackPressed() { Intent intent = new Intent(); intent.putExtra("data_return", "Hello FirstActivity"); setResult(RESULT_OK, intent); finish(); }
相关文章推荐
- 【Android】13、向下一个活动传递数据
- 向下一个活动传递数据
- 向下一个活动传递数据 --9
- Intent 向下一个活动传递数据
- 22.使用Intent向下一个活动传递数据
- Intent向下一个活动传递数据putExtra
- 第一行代码系列第二章——向下一个活动传递数据
- 基础之Intent向下,向上一个活动个传递数据
- android向下一个活动页面传递数据和向上一个页面传递数据
- Intent(三)向下一个活动传递数据
- 第一行代码:向下一个活动传递数据
- Intent 隐式跳转,向下一个活动传递数据,向上一个活动返回数据。
- 向上一个活动传递数据
- Android开发:向下一个activity传递数据,返回数据给上一个activity
- 通过Intent将数据传递给上一个活动
- 初学移动开发技术_两个页面相互跳转,并且向上一个活动传递数据并显示
- 【Android】14、向上一个活动传递数据
- 引用数据类型中引用传递的本质---地址的复制,对象只有一个
- winform程序访问一个web方法,传递参数,返回数据
- activity开启一个启动模式为SingleTask的activity,intent传递数据为空的解决方法