Android StartActivityForResult两个Activity相互跳转传递消息

来源:互联网 发布:灵格斯 for mac 编辑:程序博客网 时间:2024/06/11 16:29

MainActivity代码:

package com.example.startactivityforresult;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn = (Button) findViewById(R.id.btn);final Activity activity = this;btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(activity,ActivityB.class);int[] nums = {1,2};intent.putExtra(Contact.MAINACTIVITY_KEY, nums);startActivityForResult(intent, Contact.REQUEST_CODE);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if(data!=null){Log.d("From ActivityB", "和:"+data.getIntExtra(Contact.ACTIVITY_KEY, 0)+"");}}}

package com.example.startactivityforresult;public class Contact {public static final String MAINACTIVITY_KEY = "key";public static final String ACTIVITY_KEY = "key";public static final int REQUEST_CODE = 1;public static final int RESULT_CODE = 2;}

ActivityB代码:

package com.example.startactivityforresult;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class ActivityB extends Activity {private int sum;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);Intent intent = this.getIntent();int[] nums = intent.getIntArrayExtra(Contact.MAINACTIVITY_KEY);Log.d("From MainActivity", (nums[0]+nums[1])+"");sum = nums[0]+nums[1];Button btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {result();}});}privatevoidresult(){Intent it = new Intent();it.putExtra(Contact.ACTIVITY_KEY, sum);setResult(Contact.RESULT_CODE, it);finish();}@Overridepublic void onBackPressed() {super.onBackPressed();}}


0 0
原创粉丝点击