requestcode
Android apk开发中经常需要在活动(Activity)之间穿梭,并实现活动之间的数据传递。为了启动一个新的活动并得到该活动的返回数据,需调用方法startActivityForResult(),该方法的原型为:
void startActivityForResult (intent intent, int requestcode)
同时在原活动中利用方法onActivityResult()来处理返回结果,该方法的原型为:
void onActivityResult (int requestCode, int resultCode, Intent data)
其中:requestCode是用来标识请求的来源
resultCode是用来标识返回的数据来自哪一个activity
请求码的作用
使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,我们需要为startActivityForResult()方法传入一个请求码(第二个参数)。请求码的值是根据业务需要由自已设定,用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出相应的业务处理,这时可以这样做:
@Override public void onCreate(Bundle savedinstanceState) {
....
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 1);
}
});
button2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 2);
}
});
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case 1:
//来自按钮1的请求,作相应业务处理
case 2:
//来自按钮2的请求,作相应业务处理
}
}
}
结果码的作用
在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity):
public class ResultActivity extends Activity {
.....
ResultActivity.this.setResult(1, intent);
ResultActivity.this.finish();
}
public class NewActivity extends Activity {
......
NewActivity.this.setResult(2, intent);
NewActivity.this.finish();
}
public class MainActivity extends Activity { // 在该Activity会打开ResultActivity和NewActivity
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode){
case 1:
// ResultActivity的返回数据
case 2:
// NewActivity的返回数据
}
}
}
相关阅读
相机参数标定(camera calibration)及标定结果如何使用
一直都想写一写这个主题,但是,一直都感觉有点虚,也没有去整理。在网上搜了一下,发现大多数都是转来转去,看着也是似懂非懂的,让人很老火
作为一个草根站长,日常的生活除了看看百度官方的搜索指南文档,逛逛各大站长博客、SEO博客之外,剩下的时间就是自己一个人默默的研究
[核心提示] 5 个月的报名、筛选、投票之后,哪些产品获得了 InnoAwards 的荣誉呢?每一个产品背后,都有⼀个苦逼的团队,他们日以继夜,充
主要通过反射获取请求参数,输出JSON格式数据方便以后直接转换对象 string postStr =""; HttpActionContext actionContext = thi
请求的操作需要提升产生该问题的原因是:程序运行的时候,没有获得管理员权限 右键桌面的“计算机” - 选择“管理”;依次展开“计算