java系统找不到指定文件怎么解决
252
2022-09-02
Android ListView 正在加载 异步载入数据 CursorLoader 例子
还记得这篇文章吗?Android ListView 最基本的用法,使用SimpleCursorAdapter 。 附例子。我在使用的时候,载入大量数据时,开始会很卡,滑动倒是不会卡,就是因为开始载入是用一条sql语句查询所有数据。Android中遇到这样的问题一般用线程来执行。看了下Android 4.0 Contacts的载入方式,它非常流畅。发现它用了CursorLoader ,这里用它来做一个小小的例子。左边的是刚开始的效果,你也可以改成一个dialog罩住不让用户用。右边的是载入完成的样子,设计到联系人隐私,画了下。
CursorLoader 还是蛮好用的不过它Added in API level 11,Android 3.0才能用。Android2.3即以下都不能用,比较遗憾。
哦,对了,下面这应用别忘记加上读取联系人权限。
MainActivity.java
package com.waitingfy.android;import android.app.ListActivity;import android.app.LoaderManager.LoaderCallbacks;import android.content.Loader;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.widget.SimpleCursorAdapter;import android.widget.TextView;public class MainActivity extends ListActivity implements LoaderCallbacks
MyCursorLoader.java
package com.waitingfy.android;import android.content.Context;import android.content.CursorLoader;import android.database.Cursor;import android.provider.ContactsContract;public class MyCursorLoader extends CursorLoader{ String[] mContactProjection={ ContactsContract.Contacts._ID, //0 ContactsContract.Contacts.DISPLAY_NAME//1 }; private Context mContext; public MyCursorLoader(Context context) { super(context); mContext = context; } /** * 查询数据等操作放在这里执行 */ @Override protected Cursor onLoadInBackground() { Cursor cursor = mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, mContactProjection, null,null, null); return cursor; }}
layout/contacts_list_item.xml
layout/main.xml
values/strings.xml
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~