CursorLoader的使用
来源:互联网 发布:mysqldump备份数据库 编辑:程序博客网 时间:2024/05/21 12:08
之前经常看些大牛的博客, 从中受益良多,也帮我解决了很多问题, 一直想自己开一个博客, 于是就有了这第一篇文章, 嘿嘿, 初次写博客, 写的不好的地方大家见谅哈,如有不足或错误的地方,欢迎指出。 废话不多说, 进入正题:
在Android 3.0 API中引入了Loader加载器, 它主要作用就是用于异步加载数据,当数据源改变时可以实时刷新(可以直接理解为Observer模式),本章主要讲的是Loader的孙子(CursorLoader)的基本使用(因为它简单)
在Android 3.0 API中引入了Loader加载器, 它主要作用就是用于异步加载数据,当数据源改变时可以实时刷新(可以直接理解为Observer模式),本章主要讲的是Loader的孙子(CursorLoader)的基本使用(因为它简单)
CursorLoader顾名思义, 主要是用于加载Povider提供的数据,上代码, 代码中注释应该还算详细:
package com.ljj.loaderdata;import android.database.Cursor;import android.net.Uri;import android.support.v4.app.LoaderManager;import android.support.v4.content.CursorLoader;import android.support.v4.content.Loader;import android.support.v4.widget.CursorAdapter;import android.support.v4.widget.SimpleCursorAdapter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> { private ListView dataList; private LoaderManager mManager; private SimpleCursorAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mManager = getSupportLoaderManager(); // 偷懒, 直接使用系统自带的item布局 mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, new String[]{"number"}, new int[]{android.R.id.text1}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); initView(); mManager.initLoader( 1, // 加载器的标识, 如果不存在此加载器, 则会触发onCreateLoader创建, 如果存在则复用 null, // 可选的参数, 用于加载器初始化时 this); } private void initView() { dataList = (ListView) findViewById(R.id.data_list); dataList.setAdapter(mAdapter); } // 创建并返回一个新的loader(当指定的loader id不存在时才会调用) /** * * @param id 指定的加载器的id * @param args 初始化时传入的参数 * @return */ @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { return new CursorLoader(MainActivity.this, Uri .parse("content://call_log/calls"), new String[] { "_id", "number" }, null, null, null); } // 当加载器完成了他的装载过程后被调用 @Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { // 将加载成功的数据替换到adapter中显示, (类似于notifyDataSetChanged()) mAdapter.swapCursor(data); } /** * 当Loader被重置(比如查询其他字段)从而使之前的数据无效时, 调用此方法清除上一次的数据, * 当数据被清除之后, GC才可以清除数据 */ @Override public void onLoaderReset(Loader<Cursor> loader) { mAdapter.swapCursor(null); }}
1 0
- CursorLoader的使用
- CursorLoader的使用
- CursorLoader和CursorAdapter的配合使用
- Android中CursorLoader的使用、原理及注意事项
- Android中LoaderManager:AsyncTaskLoader和CursorLoader的使用
- 自动读取短信验证码LoaderManager和CursorLoader的使用
- CursorLoader
- CursorLoader
- CursorLoader
- 使用CursorLoader异步加载数据
- 使用CursorLoader异步加载数据
- android中CursorLoader类使用
- Android 使用CursorLoader获取手机短信
- 使用CursorLoader加载联系人信息
- 使用 CursorLoader 执行查询任务
- android的CursorLoader用法小结
- Android的CursorLoader用法小结
- 重写CursorLoader导致的问题
- 复制文字,图片到剪切板
- 数组的完全随机排列算法
- 用ListView显示当前手机进程信息
- linux驱动模块开发(二)----字符设备驱动
- windows的api HttpSendRequest
- CursorLoader的使用
- FloatingActionButton Behavior
- 性能监控的好工具 - NewRelic 简介
- 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B说我也知道了,请你猜猜这两个数的和是多少
- Laravel开启跨域请求
- 编译原理Pl/0语言 简单编译器思路
- 5.Draftjs 学习笔记-自定义控件(多媒体)
- java 线程 --- Thread,Runnable,Callable 基础学习
- Linux pip换源