我们的一个Activity要调用一个新的Activity,然后用户对新的Activity操作完成后,关闭新的Activity,这时需要将新的Activity中的一些值传递给旧的Activity。这种情况不用自己处理,Android已经为我们编写了一个onActivityResult(int requestCode, int resultCode, Intent data)方法,专门处理这种情况。 首先,在旧的Acitvity中的启动Intent方法不能再使用之前的startActivity,而要给用startActivityForResult(i, REQUESTCODE1 );方法,该方法第一个参数为要传递的intent,第二个参数为请求码,该请求码其实就是一个整型变量,用于指明是那个方法、或者说是那个控件启动了该intent,其最主要的目的是在onActivityResult(int requestCode, int resultCode, Intent data)方法中,编程使用。读者这里可以不用深究,看到例子后,便会明白。该处代码如下: Intent i = new Intent(TestActivity.this,SecondActivity.class); i.putExtra("uName", "legend"); i.putExtra("uAge", (short)18); startActivityForResult(i, REQUESTCODE1 ); 其次,在新的Activity中要接受刚刚传递的Intent,接受方法如上所述,这里不再赘述。在新的Acitvity处理完成后,需要同过setResult(Intent i)方法来设置新的Activity结束后需要传递会旧的Activity的Intent。之后调用新的Activity的finish()方法,结束新的Acitvity就可以了。代码如下: Intent resultIntent = new Intent(); resultIntent.putExtra("uName", "legend2"); resultIntent.putExtra("uAge", (short)22); setResult(RESULTCODE1, resultIntent); SecondActivity.this.finish(); 最后,在旧的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法,该方法的三个参数,这里就不在赘述了,相信读者一看即明白,这里给出代码如下: if(requestCode == REQUESTCODE1){ System.out.println("REQUESTCODE equal"); if(resultCode == SecondActivity.RESULTCODE1){ System.out.println("RESULTCODE equal"); String uName = data.getStringExtra("uName"); short uAge = data.getShortExtra("uAge", (short)0); tv.setText("uName:"+uName+" uAge:"+uAge); } }

更多相关文章

  1. mtk android内置nginx服务器的方法
  2. ubuntu 编译 Android 出现的若干错误及解决方法
  3. 解决EventBus中接收方法中无法更新UI的问题
  4. Android保持屏幕常亮的三种方法
  5. Android .so abi兼容,通用armeabi-v7a和arm64-v8a架构的方法
  6. Android 首选网络模式默认值的修改方法
  7. Android代码内存优化建议-OnTrimMemory优化

随机推荐

  1. ANDROID Porting系列九、Lights
  2. XML中的命名空间问题
  3. Android内核编译
  4. Android(安卓)日志系统(Logcat)的实现分
  5. Android(安卓)AES加密算法,现在实际上
  6. android:configChanges属性
  7. android 按钮设计中state_selected属性
  8. Activity的四种启动模式和onNewIntent()
  9. Android在代码中设置drawableLeft(Right/
  10. android快速上手(二)android开发环境搭建及