android提供了一个机制,跳转到其他activity时,再返回,可以接受到其他activity返回的值,无需再start新的当前activity;
实现原理如下:
当前两个activity,MainAcivity和SecondActivity;
1、SecondActivity中,在OnClickListener中
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK,(new Intent()).setAction(uid));
finish();
}
});
2、在MainActivity中,重写onActivityResult方法;
如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == GET_CODE){
if(resultCode == RESULT_CANCELED){
text2.setText("点击了返回");
} else {
if (data != null) {
text2.setText("得到第二个activity返回的结果:/n"+data.getAction());
}
}
}
}
其中static final private int GET_CODE = 0;是我自定义的常量,用来区分当前返回的是哪个activity的结果;
代码见:http://android-abc.googlecode.com/svn/tags/ActivityDemos-2.0.0/
程序截图见:关于回调函数中的this体会