文档章节

CursorLoader加载器读取短信的简单记录(17)

f
 flyqilong
发布于 2016/02/21 21:38
字数 330
阅读 16
收藏 0
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
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.widget.ListView;


public class MainActivity extends FragmentActivity implements
		LoaderCallbacks<Cursor> {
	private ListView listview;
	private SimpleCursorAdapter adapter;
	private String uri_sms = "content://sms";
	private LoaderManager loaderManager;

	// 这里用的是CursorLoader,所以这里的适配器必须用SimpleCursorAdapter,而AsyncTaskLoader两种都可以,只是数据在后台加载时返回值不同
	// 而且用CursorLoader不需要和AsyncTaskLoader一样要写一个类来继承AsyncTaskLoader
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		listview = (ListView) this.findViewById(R.id.listView_main_titlelist);
		adapter = new SimpleCursorAdapter(this, R.layout.item_listview, null,
				new String[] { "address", "body" }, new int[] {
						R.id.text_item_address, R.id.text_item_body },
				CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
		listview.setAdapter(adapter);
		loaderManager=getSupportLoaderManager();
		loaderManager.initLoader(1, null, this);

	}

	@Override
	public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
		// 用CursorLoader不需要和AsyncTaskLoader一样要写一个类来继承AsyncTaskLoader
		// 直接在这里new一个返回
		return new CursorLoader(this, Uri.parse(uri_sms), null, null, null,
				"date desc");
	}

	@Override
	public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
		adapter.changeCursor(cursor);

	}

	@Override
	public void onLoaderReset(Loader<Cursor> loader) {
		adapter.changeCursor(null);
	}
}

//listview布局
    <ListView
        android:id="@+id/listView_main_titlelist"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>
//listview中的自定义布局
<TextView
        android:id="@+id/text_item_address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/text_item_body"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />


© 著作权归作者所有

f
粉丝 3
博文 93
码字总数 53900
作品 0
Android工程师
私信 提问
android loader 详解

装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单。装载器具有如下特性: 它们对每个Activity和Fragment都有效。 他们提供了异步加载数据的能力。 它们监视数...

等待流星
2014/03/13
0
0
Android Loader 机制,让你的数据加载更加高效

前言 在 Android 中,任何耗时的操作都不能放在 UI 线程中,所以耗时的操作都需要使用异步加载来实现。其实,加载耗时数据的常用方式其实也挺多的,就让我们来看一下 1、Thread + Handler Th...

developerHaoz
2017/11/27
0
0
Android 装载器---使用LoaderManager的回调方法

LoaderManager.LoaderCallbacks是一个让客户与LoadManager进行交互的回调接口。 装载器,尤其是CursorLoader装载器,被期望用来保存被终止后的数据,这样就允许应用程序在Activity之间或Fra...

长平狐
2012/10/16
429
0
Android 装载器---概要

在Android3.0中引入了装载器的功能,这使它很容易在Activity或Fragment中使用异步的方式加载数据。装载器的特点如下: 1. 装载器对于每个Activity和Fagment都是有效的; 2. 装载器提供异步数...

长平狐
2012/10/16
41
0
Android 装载器---在应用程序中使用装载器

这一节描述了在Android应用程序中如何使用装载器,使用装载器的应用程序通常包括以下内容: 1. 一个Activity或Fragment; 2. 一个LoaderManager实例; 3. 一个用于加载通过ContentProvider保...

长平狐
2012/10/16
85
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写自定义控件32-等待进度条控件

一、前言 在各种各样的执行任务界面,有时候需要比较多的时间,需要给出一个直观的等待进度条表示当前正在执行的进度,而不至于懵逼在那里,用户不会觉得程序死了还是干嘛了。 等待进度条有好...

飞扬青云
24分钟前
2
0
Packagist / Composer 中国全量镜像

还没安装 Composer 吗?请往下看如何安装 Composer 。 镜像用法 有两种方式启用本镜像服务: 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一” 单个...

mdoo
25分钟前
1
0
mnist文件格式说明

根据官网 http://yann.lecun.com/exdb/mnist/ 的文件格式的定义 TRAINING SET LABEL FILE (train-labels-idx1-ubyte): [offset] [type] [value] [description] 0000 32 bit integer 0x00000......

冷基
43分钟前
2
0
DNS域名解析命令 —— host

命令host 用途: 使用域名服务器查询主机名字 语法: ]# host [选项] 主机名 [服务器] 常用选项: -t 指定查询的域名信息类型 A CERT DNAME IPSECKEY MX N...

迷失De挣扎
59分钟前
3
0
Ubuntu tty中文字符乱码

默认的tty只能显示一个字节,我们可以用setfont命令去改tty字体,但仅仅局限在一个字节内,不支持UTF-8多字节,所以我们就没办法使用汉字。但是我们可以使用FbTerm啊!FbTerm是支持中文显示的...

mbzhong
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部