startActivityForResult实现数据的返回

主要为了方便,节省代码。需要重写onActivityResul(int requestCode, int resultCode, Intent data)方法。requestCode是使用startActivityForResult(intent intent,int requestCode)的code,值需要大于等于零。ResultCode是从另一个activity返回的值,需要在另一个Activity中设置setResult(int RESULT_OK,intent),让后根据resultCode判断是从哪一个Activity返回的值,在进行相应的处理。

//MainActiviyt.java
	EditText et1 ;
	Button btn1 ; 
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main) ;
		btn1 = (Button) findViewById(R.id.main_btn1) ;
		et1 = (EditText) findViewById(R.id.main_et1) ;
		btn1.setText("传送Bundle值") ;
		btn1.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent() ;
				intent.setClass(MainActivity.this, AnotherActivity.class) ;
				
				Bundle bundle = new Bundle() ;
				bundle.putString("name",et1.getText().toString()+ "*") ;
				intent.putExtras(bundle) ;
				
				startActivityForResult(intent,0) ;
//				startActivity(intent) ;
//				MainActivity.this.finish() ;
			}
		}) ;
	} 
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO 自动生成的方法存根
		switch(resultCode){
		case RESULT_OK :
			Toast.makeText(MainActivity.this, "D", Toast.LENGTH_LONG).show() ;
			Bundle bundle = data.getExtras() ;
			et1.setText(bundle.getString("age")) ;
//			et1.setText(data.getExtras().getString("age")) ;
			break ;
		default: ;
		}
	}


//AnotherActivity.java 
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_another) ;
		Bundle bundle = this.getIntent().getExtras() ;
		String name = bundle.getString("name") ;
		setTitle(name) ;
		
		Button btn = (Button) findViewById(R.id.activity_another_btn) ;
		btn.setText("返回") ;
		btn.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Bundle bundle = new Bundle() ;
				bundle.putString("age", "23") ;
 				AnotherActivity.this.getIntent().putExtras(bundle) ;
				AnotherActivity.this.setResult(RESULT_OK,AnotherActivity.this.getIntent()) ;
				
//				Intent intent = new Intent() ;
//				intent.setClass(AnotherActivity.this, MainActivity.class) ;
//				intent.putExtra("age", "0024") ;
//				AnotherActivity.this.setResult(RESULT_OK, intent) ;
//				System.out.println(AnotherActivity.this.getIntent().getClass());
				AnotherActivity.this.finish() ;
			}
		});
	}
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值