Activity还是getApplicationContext、Fragment

Activity还是getApplicationContext

显示dialog必须使用Activity

使用adapter中初始化convertView最好使用Activity

显示地图时必须使用ApplicationContext

其他绝大的情况下两者都可以

选择ApplicationContext肯定没有问题

选择Activity可能会导致Activity对象不能被回收,导致内存泄漏

在视图对象中使用Activity作为context一般没问题,是因为视图对象在Activity中加载的,生命周期往往比activity短或者差不多

Fragment

1.理解

    是从Android3.0开始新增的概念, 意为碎片。为了更好的运用越来越大的屏幕空间而生,目前已经成为流行的开发方式。
    Fragment是一种可以嵌入在Activity当中的UI片段
    用来组建Activity界面的局部模块, 也可以说一个Actiivty界面可以由多个Fragment组成
    其行为与Activity很相似, 有自己对应的布局(包含具体的View), 它有自己的生命周期,接收自己的输入事件,并且可以从运行中的activity中添加或移除
    一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity的影响
    本质上会产生一个FrameLayout,它加载的布局为其子布局

2.关于android-support-v4.jar兼容包

    它是什么?
        google 提供的能兼容到api4(1.6)的兼容jar包
        Android3.0(11)的SDK中添加了不少新的更强大的API供开发者使用
        v4包中包含了android3.0推出的一些新的API
    为什么要用它?
        如果项目中直接使用了最新的API, 不能安装到低版本的手机中的
        而使用V4兼容包开发就可以安装到低版本(1.6)的手机
    重要API
        Fragment
        ViewPager
            FragmentStatePagerAdatper
            FragmentPagerAdapter
    注意
        在使用Fragment及其相关API时, 要导V4中定义的
        如何关联libs下jar包的源码

3.相关API

    Fragment
        View onCreateView()
        onActivityCreated()
            当Activity创建好
        getActivity()
            宿主
        setArguments(), getArgument()
    ListFragment
        setListAdapter(adapter)
        onListItemClick()
        getFragmentManager()
    FragmentActivity
        getSupportFragmentManager()
    FragmentManager
        beginTransaction()
    FragmentTransaction
        add(), replace(), remove()
        show() <-->hide()
        commit()
        addToBackStack()

4.使用

    Fragment的静态加载
        1. 定义Fragment的子类, 并在onCreateView()中加载一个布局文件
        2. 在布局文件中通过<fragment>指定自定义Fragment
        3. 我们的Activity必须继承于FragmentActivity
    Fragment的动态加载
        1. 定义Fragment的子类, 并在onCreateView()中加载一个布局文件
        2. 我们的Activity必须继承于FragmentActivity
        3. 在代码中, 动态创建Fragment对象, 并添加到指定的ViewGroup中
            add
            replace
            remove
            hide
            show
    Fragment的生命周期
        生命周期状态
            运行状态
                可见,可操作
            暂停状态
                可见,但不可操作
            停止状态
                存在,但不可见
            死亡状态
                对象不存在
        生命周期方法
            onAttach()
                当fragment与Activity建立关联时调用
            onCreate()
            onCreateView()
                为fragment创建视图(加载布局)时调用
            onActivityCreated()
                与fragment相关联的Activity已经创建完毕时候调用
            onStart()
            onResume()
            onPause()
            onStop()
            onDestroyView()
                当与fragment相关联的视图被移除的时候调用
            onDestroy()
            onDetach()
                当fragment与Activity解除关联的时候调用
        测试用例
            添加Fragment对象显示
            home到桌面
            回到应用
            replace为其它Fragment
            返回到本身的Fragment
            退出应用

5.应用Fragment

    应用Fragment的两种加载方式
    使用ListFragment显示列表
        setListAdapter()
    Fragment携带数据
    小技术:如何让选择项变色
        android:background="?android:attr/activatedBackgroundIndicator"
        设置ListView为单选模式
            getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE)
        设置默认选中第一个
            getListView().setItemChecked(0, true)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值