前面看到Intent的时候就在想这玩意难道就是为启动一下活动就完事了,现在发现intent就像是穿行于各个活动的大人物一样,跑到那活动,叫你干活,你就得启动活动,我传达的话,你只能从我这里拿,你要传话也只能从我这里传出去,intent,就是在活动中传递数据。
向下一个活动传递数据:
String data = "第二个活动你好,我是从第一个活动来的"; Intent intent = new Intent(FiirstActivity.this, SecondActivity.class); intent.putExtra("extra_data", data); startActivity(intent);从下一个活动中获取上一个活动中传递的数据:
Intent intent = getIntent(); String data = intent.getStringExtra("extra_data");除了字符串,还有获取int.booolean等,如getIntExtra(),getBooleanExtra();
返回上一活动我们用back按键,那怎么返回数据呢,在启动的活动被销毁时时返回数据:用startActivityForResult():并且在第一个活动中做好准务接收返回的方法
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent, 1);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ switch(requestCode){ case 1: if(requestCode == RESULT_OK){ String returnedData = data.getStringExtra("data_return"); } break; default: } }
与startActivity();一样的用法嘛。
第二个活动启动了那销毁时肯定要在第二个活动中把数据传给第一个活动咯
Intent intent = new Intent(); intent.putExtra("data_return", "你好第一个活动,我是从第二活动返回来的"); setResult(RESULT_OK, intent); finish();