Android onActivityResult
16lz
2021-01-23
1)在Android中startActivityForResult主要作用就是:
4.修改EditActivity代码如下
5.添加一个类BaseField.java用来存放“添加请求代码”、”添加结果代码“...
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"; }
更多相关文章
- Android JAVA代码执行shell命令
- 〖Android〗OK6410a的Android HAL层代码编写笔记
- Android:如何从堆栈中还原ProGuard混淆后的代码
- android recovery 主系统代码分析
- Android 通过蓝牙控制小车源代码+视频
- Android SQLite详解及示例代码
- Android中打印代码的调用层次
- 【android】在Eclipse在联想引jar包源代码