MainActivity如下:
package cn.teststartactivityforresult; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * Demo描述: * 测试startActivityForResult的连续调用 * */ public class MainActivity extends Activity { private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } /** * 注意: * startActivityForResult(intent, requestCode)方法的参数 * requestCode表示本次startActivityForResult操作的请求码 * 因为在同一个Activity中根据业务的不同需要多次执行startActivityForResult * 所以为了区分每次startActivityForResult的操作为其设置一个 * requestCode */ private void init(){ mButton=(Button) findViewById(R.id.first_button); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent=new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, 123); } }); } /** * 注意: * onActivityResult(int requestCode, int resultCode, Intent data)方法的参数 * 同上面的描述背景既然有不同的startActivityForResult操作,那么这些不同的操作 * 当然有不同的返回值.所以用resultCode来标识了不同的结果 * 所以可以根据requestCode和resultCode来共同进行业务判断 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==123&&resultCode==7) { System.out.println("第一个Activity关闭 得到返回数据为:"+data.getStringExtra("test")); finish(); } } }
SecondActivity如下:
package cn.teststartactivityforresult; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SecondActivity extends Activity { private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.secondactivity); init(); } private void init(){ mButton=(Button) findViewById(R.id.second_button); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent=new Intent(SecondActivity.this, ThirdActivity.class); startActivityForResult(intent, 9527); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode==9527) { System.out.println("第二个Activity关闭 得到返回数据为:"+data.getStringExtra("test")); setResult(7, data); finish(); } } }
ThirdActivity如下:
package cn.teststartactivityforresult; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ThirdActivity extends Activity { private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.thirdactivity); init(); } private void init(){ mButton=(Button) findViewById(R.id.third_button); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { System.out.println("第三个Activity关闭"); Intent data=new Intent(); data.putExtra("test","hello"); setResult(9527, data); finish(); } }); } }
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/first_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第一个Activity" android:layout_centerInParent="true" /> </RelativeLayout>
secondactivity.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/second_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第二个Activity" android:layout_centerInParent="true" /> </RelativeLayout>
thirdactivity如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/third_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="关闭该Activity" android:layout_centerInParent="true" /> </RelativeLayout>
时间: 2024-07-28 17:53:04