<强>前言强>
安卓开发中一个很基础的操作就是打开一个活动,另一个很必要的操作就是,打开一个活动,在打开的活动中操作之后并获得返回结果。
<强>两个活动强>
为了演示这个操作,我们需要两个活动: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开发者们能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。