1013
外匯
Activity跳轉與返回
兩個 Activity 跳轉,都是在第一個 Activity 調用 startActivity() 方法啟動第二個 Activity ,然後在第二個 Activity 調用 Context.finish() 方法實現返回到第一個 Activity 。但是有的時候業務需求很複雜,從第二個 Activity 返回到第一個 Activity 時候,需要再次處理某些事情時就要使用 startActivityForResult() 方法啟動第二個 Activity 了,並在第一個 Activity 中重寫 onActivityResult() 方法。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnLogin = (Button) findViewById(R.id.btnLogin);
userid = (EditText) findViewById(R.id.userid);
pwd = (EditText) findViewById(R.id.password);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (userid.getText().toString().equals("tony")
&& pwd.getText().toString().equals("1")) {
Intent it = new Intent(LoginActivity.this,
SuccessActivity.class);
it.putExtra("userid", userid.getText().toString());
startActivityForResult(it, 1);
} else {
Intent it = new Intent(LoginActivity.this,
FailureActivity.class);
startActivityForResult(it, 2);
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
// 登錄成功之後返回的。
Log.v(TAG, "from success activity return. resultCode=" + resultCode);
break;
case 2:
// 登錄失敗之後返回的。
Log.v(TAG, "from failure activity return. resultCode=" + resultCode);
}
super.onActivityResult(requestCode, resultCode, data);
}
}
成功屏幕 SuccessActivity