Android基础之startActivityForResult()的用法详解

  

<强>前言

  

安卓开发中一个很基础的操作就是打开一个活动,另一个很必要的操作就是,打开一个活动,在打开的活动中操作之后并获得返回结果。

  

<强>两个活动

  

为了演示这个操作,我们需要两个活动:MainActivity和OtherActivity,在MainActivity中通过意图启动OtherActivity,并获得OtherActivity结束后返回的结果,例子仅作演示,为了方便,我直接在Java文件中定义了控件,就不写布局文件了。

  

<强> MainActivity.java

        包net.conw.intenttest;      进口android.app.Activity;   进口android.content.Intent;   进口android.os.Bundle;   进口android.view.View;   进口android.widget.Button;   进口android.widget.EditText;   进口android.widget.LinearLayout;      公共类MainActivity扩展活动实现视图。OnClickListener {      私人EditText EditText;   私人按钮按钮;   公共静态int REQUEST_CODE=1;      @Override   保护空白>   包net.conw.intenttest;      进口android.app.Activity;   进口android.content.Intent;   进口android.os.Bundle;   进口android.view.View;   进口android.widget.Button;   进口android.widget.EditText;   进口android.widget.LinearLayout;      公共类OtherActivity扩展活动实现视图。OnClickListener {      私人EditText EditText;   私人按钮按钮;   公共静态int RESULT_CODE=1;      @Override   保护无效onCreate(包savedInstanceState) {   super.onCreate (savedInstanceState);      LinearLayout LinearLayout布局=new ();   editText editText=new ();   按钮=new按钮(这);   button.setText(“其他”);   button.setOnClickListener(这个);      editText layout.addView ();   layout.addView(按钮);   setContentView(布局);      editText.setText (getIntent () .getStringExtra(“文本”));   }      @Override   公共空间onClick(查看v) {   目的意图=new意图();   意图。.toString putExtra(“文本”,editText.getText () ());   setResult (RESULT_CODE意图);   完成();   }   }      

<强>整个代码的执行逻辑如下:
  

  

1,两个活动的代码就是这样的,当MainActivity中的按钮被触发<代码> onClick() 事件后,把MainActivity中的EditText的内容发给了OtherActivity。
  

  

2, OtherActivity打开并初始化好控件后,把EditText的内容设置为MainActivity发过来的内容。
  

  

3,当OtherActivity中的按钮被触发<代码> onClick() 事件后,把OtherActivity中的EditText的内容返回给MainActivity。
  

  

4,当返回到MainActivity时,会执行<代码> ononActivityResult() 方法的内容,判断如果RequestCode和ResultCode无误后,把MainActivity中的EditText的内容改为OtherActivity返回的结果。(这里判断了RequestCode和ResultCode,所以OtherActivity通过回键返回时,MainActivity的内容不会改变)

  

所以结果就是,通过这样的方式打开这两个活动,他们中的EditText的内容是同步的,一个活动改变了,到另一个活动中也会跟着改变。

  

<强>总结

  

好了,以上就是关于Android中startActivityForResult()的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。

Android基础之startActivityForResult()的用法详解