activity之间的正向和反向通信

在开发过程中经常会出现一个activity的信息要传递给另一个activity,还有就是要上一个activity的数据传回之前的activity

首先先使用正向传递:

public class IntentDemo extends Activity {  
  
    private Button button;  
  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                Intent intent = new Intent(IntentDemo.this, Other.class);  
                // 在Intent中传递数据  
                intent.putExtra("name", "AHuier");  
                intent.putExtra("age", 22);  
                intent.putExtra("address", "XiaMen");  
                // 启动Intent  
                startActivity(intent);  
            }  
        });  
    }  
}  
要接收的页面

public class Other extends Activity {  
  
    private TextView textView;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.other);  
        textView = (TextView) findViewById(R.id.msg);  
        Intent intent = getIntent();  
        int age = intent.getIntExtra("age", 0);  
        String name = intent.getStringExtra("name");  
        String address = intent.getStringExtra("address");  
  
        textView.setText("My age is " + age + "\n" + "My name is " + name + "\n" + "My address "  
                + address);  
    }  
下面是信息传回

在要返回的页面里写入

Intent backIntent = new Intent();
		backIntent.putExtra("message", displayContents);
		CaptureActivity.this.setResult(RESULT_OK, backIntent);
		CaptureActivity.this.finish();
在接的页面里使用 startActivityForResult跳转, onActivityResult负责接收数据

Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
			
			startActivityForResult(intent, 0);

@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode == RESULT_OK) {
			String str = data.getExtras().getString("message");
			tv.setText(str);
		}
	}


在使用返回的时候记得使用finish返回到上一个,页面记得要注册一下


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值