public
class
MainActivity
extends
Activity
implements
LoaderCallbacks
<</span>Cursor>{
02
03 private ListView lvinfo;
04 private TextView tvempty;
05 private SimpleCursorAdapter adapter;
06 private LoaderManager manager;
07 @Override
08 protected void onCreate(Bundle savedInstanceState) {
09 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_main);
11 lvinfo =(ListView) findViewById(R.id.lv);
12 tvempty = (TextView) findViewById(R.id.tvnothing);
13 adapter = new SimpleCursorAdapter(this, R.layout.listview, null, new String[]{"_id","address","body"}, newint[]{R.id.tvid,R.id.tvadd,R.id.tvbody}, SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
14 lvinfo.setAdapter(adapter);
15 lvinfo.setEmptyView(tvempty);
16
17 //异步去加载数据,
18 //获得LoaderManager的管理器
19 manager=getLoaderManager();
20 //初始化Loader
21 manager.initLoader(1, null, this);
22 }
23 //初始化方法,只执行一次
24 @Override
25 public Loader<</span>Cursor> onCreateLoader(int id, Bundle args) {
26 // 启动
27 return new CursorLoader(this, Uri.parse("content://sms"), null, null, null, null);
28 }
29 //回调的方法
30 @Override
31 public void onLoadFinished(Loader<</span>Cursor> loader, Cursor data) {
32 // 当异步加载数据得到数据后就需要刷新listview
33 adapter.swapCursor(data);
34 }
35 //当loader被重置时执行
36 @Override
37 public void onLoaderReset(Loader<</span>Cursor> loader) {
38 // TODO Auto-generated method stub
39 adapter.swapCursor(null);
40 }
41
42 }
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42