第十四章之Activity返回结果

本文介绍了一个简单的Android应用示例,展示了如何通过Intent在两个Activity之间进行数据传递。包括从MainActivity启动ResultActivity并发送数据回MainActivity的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习:

隐式意图过滤的四种类型:scheme、host、path、mime Type(文件的类型)。

----------------------------------------------------------------------------------------------------------

可实现效果:在登陆界面 申请注册,跳转到注册页面,填完数据后点击注册,返回数据到登陆界面。


MainActivity.java

public class MainActivity extends Activity {
	Button btn1;
	TextView result;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		initView();
	}
	public void initView(){
		btn1 = (Button)findViewById(R.id.btn1);
		result = (TextView)findViewById(R.id.text1);
		btn1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this,ResultActivity.class);
				//启动一个Activity并且接收一个返回结果
				startActivityForResult(intent, 200);
			}
		});
	}
	/**
	 * 接收返回结果的回调函数
	 * 参数1:请求码
	 * 参数2:结果码
	 * 参数3:意图对象(存放的是返回结果的数据)
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		String result_data = data.getStringExtra("result");
		result.setText(result_data);
		super.onActivityResult(requestCode, resultCode, data);
	}
	
}


ResultActivity.java

public class ResultActivity extends Activity {
	EditText result_edit;
	Button close_btn;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.result);
		initView();
	}
	public void initView(){
		result_edit = (EditText)findViewById(R.id.result_edit);
		close_btn = (Button)findViewById(R.id.close_btn);
		close_btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				String result = result_edit.getText().toString();
				Intent intent = new Intent();
				intent.putExtra("result", result);
				//返回结果
				ResultActivity.this.setResult(200, intent);
				//关闭当前Activity
				ResultActivity.this.finish();
			}
		});
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值