| 知乎专栏 |
设置数据
Intent intent= new Intent();
intent.putExtra("name","zhangsan");
取出数据
Intent intent = getIntent();
String name=intent.getStringExtra("name");
Intent it = new Intent(Activity.Main.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("name", "This is from MainActivity!");
it.putExtras(bundle);
startActivity(it);
获取数据
Bundle bundle=getIntent().getExtras();
String name=bundle.getString("name");
Flag属性用来设定Activity的启动模式
Intent intent = new Intent(); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
与清单文件中的设置launchMode属性值相同
Intent.FLAG_ACTIVITY_CLEAR_TOP = singleTask Intent.FLAG_ACTIVITY_SINGLE_TOP = singleTop Intent.FLAG_ACTIVITY_NEW_TASK = singleInstance
有返回值的跳转
Intent intent = new Intent(MainActivity.this,HomeActivity.class);
intent.putExtra("nickname","netkiller");
// 第一个参数Intent对象, 第二个参数 RequestCode
startActivityForResult(intent,REQUSET_CODE);
第一个参数 是不是我要的返回结果 第二个参数 是谁返回给我的 第三个参数 返回的附加信息
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if(requestCode == REQUSET_CODE && resultCode == HomeActivity.RESULT_CODE){
String msg = data.getStringExtra("msg");
Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
}
}
返回结果
Intent intent = new Intent();
Intent oldIntent = getIntent();
String nickname = oldIntent.getStringExtra("nickname");
if(TextUtils.isEmpty(nickname)){
intent.putExtra("msg",nickname);
}else{
intent.putExtra("msg","Neo");
}
setResult(RESULT_CODE,intent);
//关闭页面
finish();