平时Android的页面跳转常用到startActivity,不够有时候我们需要跳转页面后返回初始页面并把数据带回来,这时候就可用到startActivityForResult了。
下面看一下效果:
下面按照使用步骤来写代码:
第一步点击按钮是执行下面代码:
1
2Intent intent2 = new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent2, 0);//这里0是requestCode第二步进入第二界面,然后返回:
1
2
3
4
5
6
7
8
9
10
11
12
13
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_ok:
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
Log.i("Kevin", "输入框内容------->"+mET.getText().toString().trim());
intent.putExtra("kevin", mET.getText().toString().trim());//将输入框内容传回去
setResult(RESULT_OK,intent);//这里RESULT_OK是resultCode;
finish();
break;
}
}第三步回来到初始界面,获取到第二界面数据并展示:
1
2
3
4
5
6
7
8
9
10
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(RESULT_OK==resultCode){
String kevin = data.getStringExtra("kevin");
Log.i("Kevin", "kevin-------->"+kevin);
Toast.makeText(getBaseContext(),kevin,Toast.LENGTH_SHORT).show();
}
}
这里是打印出来的值:1
2
3
4641-641/com.kevin.tech.statusbardemo I/Kevin: 输入框内容------->hello
641-641/com.kevin.tech.statusbardemo I/Kevin: kevin-------->hello
641-641/com.kevin.tech.statusbardemo I/Kevin: 输入框内容------->nihao
641-641/com.kevin.tech.statusbardemo I/Kevin: kevin-------->nihao
好了,startActivityForResult的使用就是这么几步。