《Android权威编程指南》学习笔记

  1. 调用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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。