- 调用startActivityForResult启动的Activity的回传方法是setResult(int resultCode, Intent data),这个方法的resultCode一般有RESULT_OK、RESULT_CANCELED以及RESULT_FIRST_USER。OK和CANCELED一般可以对应确认按钮和取消按钮的返回值。如果我们的活动没调用setResult方法就结束了,系统还是会返回resultCode的。比如我们按手机的back按键结束了活动,则上一个活动会受到RESULT_CANCELED。
又看了下,onBackPressed()方法会设置RESULT_CODE为CANCELD,所以如果我们在onBackResult()方法里写setResult()的话,需要写在super.onBackPressed()前面。
public void onBackPressed() {
setResult(RESULT_OK, intent);
super.onBackPressed();
}
也就是说同时setResult()两次的话,前边的生效,这点不是很肯定。
2.不要在Fragment中处理被托管的Activity的生命周期,例如getActivity().finish()
如果非要在Fragment里结束Activity,可以试试调用Activity的onBackPressed()方法。
3.ViewPager不支持边距,即它的下一级布局layout_margin无效,解决方法很简单,给下一级布局套一层LineLayout。