读书人

[android]startActivityForResult步骤

发布时间: 2012-09-10 22:20:12 作者: rapoo

[android]startActivityForResult方法简介

Activity1跳转到Activity2,用startActivity();如果由Activity1跳转到Activity2,需要再由Activity2回到Activity1呢?

可能有人说:那我在Activity2中再次使用startActivity()不就可以了,是的,但是startActivityForResult()能够直接完成这项工作


Activity startActivityForResult(Intent intent,int requestCode)步骤:---requestCode--0--用此来做个标记,要求大于等于0

1)在源Activity中使用startActivityForResult()方法启动目标Activity

2)在目标Activity中使用setResult()方法设置返回值,并调用finish()方法结束目标Activity

3)在源Activity中重写onActivityResult()方法,获得从目标Activity中返回的值


源Activity代码:

public class TargetActivity extends Activity {private Button button;private String name;private void setupView(){button = (Button)findViewById(R.id.button);button.setText("返回");}public void doClick(View v){//判断姓名,根据姓名获取对应的年龄int age = -1;if("zhangsan".equals(name)){age = 19;}else if("lisi".equals(name)){age = 20;}else if("wangwu".equals(name)){age = 30;}else{age = 18;}//创建intent对象,设置年龄为附加参数Intent intent = new Intent();intent.putExtra("age", age);//设置返回值,将intent对象作为数据返回到源ActivitysetResult(RESULT_OK, intent);finish();}@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);setupView();//初始化界面//获取源Activity传递过来的姓名信息name = getIntent().getStringExtra("name");//如果未正确获得姓名,则返回RESULT_CALCELEDif(name==null){setResult(RESULT_CANCELED);finish();}}}



1楼the_fire昨天 23:07
真是个勤快人呀,加油,加油
Re: guomeijuan916昨天 23:35
回复the_firen额,好滴好滴....嘻嘻

读书人网 >Android

热点推荐