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

 

public class SuccessActivity extends Activity {



Button btnBack;

TextView label;



@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.success);



label = (TextView) findViewById(R.id.label);

Bundle bundle = this.getIntent().getExtras();

String userid = bundle.getString("userid");

label.setText(userid);

btnBack = (Button) findViewById(R.id.btnBack);

btnBack.setOnClickListener(new View.OnClickListener() {



@Override

public void onClick(View v) {

setResult(4, (new Intent()).putExtra("name", label.getText()

.toString()));

SuccessActivity.this.finish();

}

});



}



}



失败屏幕 FailureActivity

 

public class FailureActivity extends Activity {



Button btnBack ;

TextView label;



@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.failure);

label = (TextView)findViewById(R.id.label);

btnBack = (Button)findViewById(R.id.btnBack);

btnBack.setOnClickListener(new View.OnClickListener() {



@Override

public void onClick(View v) {

setResult(5);

FailureActivity.this.finish();

}

});



}



}



转载于:https://www.cnblogs.com/516inc/archive/2011/11/02/2232539.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值