Android中的请求码
来源:互联网 发布:c语言字符串 编辑:程序博客网 时间:2024/06/05 06:06
在Android中,当Activity之间相互跳转时,可以使用意图(Intent)来传递相应的数据。
新的Activity与原来Activity不在同一个进程中,原来Activity带着请求码跳到一个新的Activity界面,可以使用startActivityForResult(Intent intent, int requestCode)。当新的Activity关闭时,会触发原来Activity的onActivityResult事件。
onActivityResult(int requestCode, int resultCode, Intent data)
requestCode: 通过这个参数可以判断是从哪个界面回来的
resultCode、data:被关闭的那个界面传递回来的数据
配送地址界面:
新的Activity与原来Activity不在同一个进程中,原来Activity带着请求码跳到一个新的Activity界面,可以使用startActivityForResult(Intent intent, int requestCode)。当新的Activity关闭时,会触发原来Activity的onActivityResult事件。
onActivityResult(int requestCode, int resultCode, Intent data)
requestCode: 通过这个参数可以判断是从哪个界面回来的
resultCode、data:被关闭的那个界面传递回来的数据
当我们关闭新的Activity时,会触发主Acvitity的onActivityResult方法,那么由于原Activity发送了一个请求码,这时候就可以根据请求码判断是从哪个界面回来的了。
新界面:
setResult(int resultCode):设置传递到上一个界面的数据setResult(int resultCode, Intent data):设置传递到上一个界面的数据从新Activity回到原Activity时也可以设置一些结果码信息。
案例:
在原来的界面设置两个按钮,分别用于获取支付方式和配送地址
原来的界面:
public class MainActivity extends Activity implements OnClickListener {private TextView mPayTv;private TextView mReceiveTv;private static final int PAY_REQ = 0x001;private static final int RECEIVE_REQ = 0x002; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.pay_btn).setOnClickListener(this); findViewById(R.id.receive_btn).setOnClickListener(this); mPayTv = (TextView) findViewById(R.id.pay_tv); mReceiveTv = (TextView) findViewById(R.id.receive_tv); }@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.pay_btn:Intent intent = new Intent(this,PayActivity.class);startActivityForResult(intent, PAY_REQ);break;case R.id.receive_btn:Intent receiveIntent = new Intent(this,ReceiveActivity.class);startActivityForResult(receiveIntent, RECEIVE_REQ);break;}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {//String payResult = data.getStringExtra("payResult");//mPayTv.setText(payResult);//String receiveResult = data.getStringExtra("receiveResult");//mReceiveTv.setText(receiveResult);if(requestCode == PAY_REQ){String payResult = data.getStringExtra("payResult");mPayTv.setText(payResult);}else if(requestCode == RECEIVE_REQ){String receiveResult = data.getStringExtra("receiveResult");mReceiveTv.setText(receiveResult);}} }支付界面:
public class PayActivity extends Activity implements OnClickListener {private Button mWchatBtn;private Button mAlipyBtn;private Button mUnionPayBtn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_pay);mWchatBtn = (Button) findViewById(R.id.wchat_btn);mAlipyBtn = (Button) findViewById(R.id.alipay_btn);mUnionPayBtn = (Button) findViewById(R.id.unionpay_btn);mWchatBtn.setOnClickListener(this);mAlipyBtn.setOnClickListener(this);mUnionPayBtn.setOnClickListener(this);}@Overridepublic void onClick(View v) {Button btn = (Button)v;String result = btn.getText().toString();Intent intent = new Intent();//intent封装数据intent.putExtra("payResult", result);setResult(0, intent);//杀掉界面(不可少,少了就传不了数据给原来的界面)finish();}}
配送地址界面:
public class ReceiveActivity extends Activity implements OnClickListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_receive);findViewById(R.id.receive_btn).setOnClickListener(this);}@Overridepublic void onClick(View v) {Button btn = (Button)v;String receiveResult = btn.getText().toString();Intent intent = new Intent();intent.putExtra("receiveResult", receiveResult);setResult(0, intent);finish();}}
0 0
- Android中的请求码
- Android中的请求码与结果码
- android中的请求码和结果码
- Android中的请求码与结果码
- Android中的HTTP请求
- Android中的Http请求
- Android中的网络请求:
- Android中的http请求 URLEncode
- android中的HttpClient,Delete请求
- Android网络请求中的安全问题
- android中的网络请求框架
- Android中的网络请求 Volley
- android http get请求中的乱码问题
- Android中的HTTP请求(GET/POST)
- Android中的httpclient框架发送get请求
- Android中的几种网络请求方式
- Android中的GET和POST请求
- Android网络请求中的回调
- MinGW-w64 and msys install on windows
- MySQL5.6基于GTID复制配置
- ios中oc的js的交互
- 用C证明一个数学结论
- Ubuntu安装ROS Kinetic(Ubuntu install of ROS Kinetic)
- Android中的请求码
- [生存志] 第4节 第一篇 以史为鉴 易中天的历史地位
- 各种编程语言的 Hello World
- 初学linux命令-top
- MTK 6261D FAQ
- hadoop启动前配置(CentOS6.4)
- Jnetpcap 官方样例 (7)- 遍历pcap并输出数据包header信息
- AndroidKill反编译软件使用详解
- Java跨域设置