Loader(1)


        概念:用于对数据进行异步加载


        一,使用方法:


            1、使用Loader时包含的组件
                ①Activity或Fragment
                ②一个LoaderManager实例,用于管理Loader
                ③使用CursorLoader,用于查询ContentProvider的数据
                ④实现LoaderMnager.LoaderCallBacks<D>,它可以初始化一个Loader或者管理Loader
                ⑤要想显示Loader的数据,可以使用SimpleCursorAdapter并使用观察者模式
                ⑥当使用CursorLoader时,数据源会是一个ContentProvider
            2、启动Loader
                ①LoaderManager管理Activity或fragment中的一个或多个Loader
                ②通常在Activity的onCreate()方法中对LoaderManager进行初始化
                ③保证一个Loader被初始化并激活,它具有两种可能的结果
                    a.如果初始化的Loader ID已存在,将重用原来的Loader
                    b.如果初始化的Loader ID不存在,将使用LoaderMnager.LoaderCallBacks中的onCreateLoader()实例化一个Loader对象,它是创建Loader对象的发源地
            3、重启Loader
                ①当有新数据更新时,需要使用restartLoader()方法对该Loader进行重启

                ②使用方法: getLoaderManager().restartLoader(0, null, this)


        二,LoaderManager


            作用: 管理Loader的启动、重启和注销
            获取LoaderManager对象: Activity.getLoaderMaanager()
            initLoader(int id, Bundle args, LoaderCallbacks<D> callback): 初始化和启动一个Loader
            restartLoader(int id, Bundle args, LoaderCallbacks<D> callback): 通过loader id重新启动一个Loader
            destroyLoader(int id): 注销一个Loader
            LoaderMnager.LoaderCallBacks<D>
            ①Loader<D> onCreateLoader(int id,Bundle args)
                在onCreateLoader()方法中,通过CursorLoader查询ContentProvider的数据
            ②void onLoadFinished(Loader<D> loader,D data)
                在onLoadFinished()方法中,通过adapter.swapCursor()将加载完的数据显示到ListView
            ③void onLoaderReset(Loader<D> loader)

                在onLoaderReset()方法中,通过adapter.swapCursor(null)清空无效的数据


   三, CursorLoader


        作用:加载ContentProvider提供的数据
        父类: AsyncTaskLoader ->Loader

        CursorLoader(Context, Uri, String[], String, String[], String)


   四, AsyncTaskLoader<D>


        父类:android.content.Loader<D>
        概念: 抽像的Loader子类,并提供AsyncTask类来工作,用于加载大数据
        主要方法
            onStartLoading() 开始启动Loader方法
            D loadInBackground() 后台加载数据的处理方法
            deliverResult(D result) 发布数据的处理方法
            onContentChanged() 数据内容改变时的处理方法
            无需重写

        使用方法:同CursorLoader


    五,SearchView


        父类:LinearLayout
        概念:文本搜索控件,可用于ActionBar
        常用属性
            android:inputType="text" 设置输入内容的类型,同EditText的inputType属性
            android:iconifiedByDefault="true"  是否图标化,true为图标化,在点击图标时才显示文本输入框
            android:queryHint 设置提示文本信息
        设置查询文本事件监听器:setOnQueryTextListener(SearchView.OnQueryTextListener)
            onQueryTextChange(String newText) 查询内容发生改变时
            onQueryTextSubmit(String query) 按“Enter“键提交查询内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值