1)在Android中startActivityForResult主要作用就是:

A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A-Activtiy

2)接下来我将附加代码讲述

1.添加AddActivity和EditActivity

2.将主窗体MainActivity修改成代码如下

主要实现的功能是跳转到子Activity(AddActivity,EditActivity)并根据请求代码和结果代码获取子窗体的参数。

package com.example.androiddemo2;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {private Button addButton=null;private Button editButton=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*跳转到AddActivity*/addButton=(Button)findViewById(R.id.addButton);addButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {Intent addIntent=new Intent(MainActivity.this, AddActivity.class);/*addRequest是一个“请求代码”应该大于等于0它将会在onActivityResult()中返回*/startActivityForResult(addIntent, BaseField.AddRequest);}});/*跳转到EditActivity*/editButton=(Button)findViewById(R.id.editButton);editButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {Intent editIntent=new Intent(MainActivity.this,EditActivity.class);Bundle bundle=new Bundle();bundle.putString("username", "张三");bundle.putString("password", "123456");editIntent.putExtras(bundle);/*editRequest是一个“请求代码”应该大于等于0它将会在onActivityResult()中返回*/startActivityForResult(editIntent, BaseField.EditRequest);}});} /**      * 重写onActivityResult这个方法      * 是要等到AddActivity,EditActivity finish后才会执行的      */      @Override      protected void onActivityResult(int requestCode, int resultCode, Intent data)      {    /*添加请求代码和添加结果代码*/    if(requestCode==BaseField.AddRequest&&resultCode==BaseField.AddResult){    Bundle bundle=data.getExtras();    Log.i(BaseField.Tag, bundle.getString("message"));    }    /*修改请求代码和修改结果代码*/    if(requestCode==BaseField.EditRequest&&resultCode==BaseField.EditResult){    Bundle bundle=data.getExtras();    Log.i(BaseField.Tag, bundle.getString("message"));    }    super.onActivityResult(requestCode, resultCode, data);    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
3.修改AddActivity代码如下

实现的功能是设置回传参数和结果代码并关闭Activity促使MainActivity调用onActivityResult方法

package com.example.androiddemo2;import android.app.Activity;import android.content.Intent;import android.os.Bundle;public class AddActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    /*设置回传参数和结果代码后finish Activity*/    Intent intent=new Intent();    intent.putExtra("message", "add success");    setResult(BaseField.AddResult, intent);    finish();}}

4.修改EditActivity代码如下

实现功能是获取MainActivity传过来的参数,然后设置回传参数和结果代码并关闭Activity促使MainActivity调用onActivityResult方法

package com.example.androiddemo2;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;public class EditActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    /*获取传递的参数*/    Bundle bundle=this.getIntent().getExtras();      Log.i(BaseField.Tag, bundle.getString("username"));    Log.i(BaseField.Tag, bundle.getString("password"));    /*设置回传参数和结果代码后finish Activity*/    Intent intent=new Intent();    intent.putExtra("message", "edit success");    setResult(BaseField.EditResult, intent);    finish();}}

5.添加一个类BaseField.java用来存放“添加请求代码”、”添加结果代码“...

具体代码如下

package com.example.androiddemo2;public class BaseField {/*添加请求代码*/public static int AddRequest=101;/*修改请求代码*/public static int EditRequest=201;/*添加结果代码*/public static int AddResult=102;/*修改结果代码*/public static int EditResult=202;public static String Tag="TAG"; }



更多相关文章

  1. Android JAVA代码执行shell命令
  2. 〖Android〗OK6410a的Android HAL层代码编写笔记
  3. Android:如何从堆栈中还原ProGuard混淆后的代码
  4. android recovery 主系统代码分析
  5. Android 通过蓝牙控制小车源代码+视频
  6. Android SQLite详解及示例代码
  7. Android中打印代码的调用层次
  8. 【android】在Eclipse在联想引jar包源代码

随机推荐

  1. 适配Android(安卓)Q上读取多媒体文件
  2. Vysor让你在电脑上完全控制android手机屏
  3. android 某些三星手机上不显示通知Notifi
  4. Android(安卓)Apk瘦身指南大全
  5. Android通讯录管理(获取联系人、通话记录
  6. Android同一图片在不同分辨率下长宽不同
  7. android打开一个activity时,什么情况使用f
  8. 关于android混合开发模式Hybrid逻辑梳理
  9. 人人都是 Android(安卓)开发者 - Android
  10. android修改按键的映射