本文共 2543 字,大约阅读时间需要 8 分钟。
startActivityForResult与startActivity的不同之处在于:
1、startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。 2、startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。
相关函数:
startActivityForResult(Intent intent, Int requestCode) setResut(int resultCode, Intent intent) onActivityResult(int requestCode, int resultCode, Intent intent)-----------MainActivity----------------------------------------------
public class MainActivity extends Activity {
TextView t; public static final int REQUSET = 110; //一定要>=0 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); t = (TextView)findViewById(R.id.toOther); Button b = (Button)findViewById(R.id.toOther_btn); b.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent in = new Intent(); in.setClass(getApplicationContext(), OtherActivity.class); startActivityForResult(in, REQUSET); } }); } /**--requestCode:请求码 resultCode:结果码,用于标识返回数据来自哪个新Activity */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == REQUSET && resultCode == OtherActivity.RESULT_OK){ String str = "帐号:"+data.getStringExtra(OtherActivity.KEY_USER_ID)+"\n密码:" +data.getStringExtra(OtherActivity.KEY_USER_PASSWORD); t.setText(str); } Toast.makeText(getApplicationContext(), "requestCode=" + requestCode + "::::" + "resultCode=" + resultCode, Toast.LENGTH_LONG).show(); } }------------------OtherActivity--------------------------------------------------------------------
public class OtherActivity extends Activity {
EditText eID ; EditText ePASSWORD ; Button b; public static final String KEY_USER_ID = "USER_ID"; public static final String KEY_USER_PASSWORD = "USER_PASSWORD";public static final int RESULT_OK = 111;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_other); eID = (EditText)findViewById(R.id.user_ID); ePASSWORD = (EditText)findViewById(R.id.user_PASSWORD); b = (Button)findViewById(R.id.toMain_btn); b.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent in = new Intent(); in.putExtra(KEY_USER_ID, eID.getText().toString()); in.putExtra(KEY_USER_PASSWORD, ePASSWORD.getText().toString()); setResult(RESULT_OK,in); finish(); } }); } }