切换Activity
1 2
| Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent);
|
给子Activity传递数据
如果给新启动的子Activity传递数据,只需要在Intent对象中加入key-value,key为准备传递数据的字符指示名称,value为准备传递的数据
1 2
| intent.putExtra("KEY",data); startActivity(intent);
|
1 2 3 4 5
| @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int data= getIntent().getIntExtra("KEY"); }
|
从子Activity返回数据
1 2 3 4
| Intent intent = new Intent(); intent.putExtra(“KEY”, data); setResult(RESULT_OK, intent); this.finish();
|
setResult(RESULT_OK, intent) 设置子Activity要返回父Activity(打开新Activity的Activity)的信息,RESULT_OK为int值,表子Activity成功执行完毕,intent里面就是包含要返回的数据。
记得要关闭哦 finish()在父Activity中如果要接收子Activity的返回结果,需要使用 startActivityForResult(intent, requestCode)打开子Activity,并且要重写 onActivityResult方法
1 2 3 4 5 6 7 8 9 10
| Intent intent = new Intent(this, DrugLibActivity.class); startActivityForResult(intent, 10);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (10 == requestCode) { int index = data.getIntExtra(KEY,0); } }
|
如果在同一个Activity中有多个地方可调用 startActivityForResult 打开多个子 Activity 的情况,那你应该在 onActivityResult 返回时判断 requestCode,这样你就能搞清楚是哪个子Activity返回了数据。
参考:https://www.cnblogs.com/dw039/p/7411210.html