ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

AndroidÖÐcursorµÄʹÓÃ
2014-11-24 12:49:14 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºAndroid cursor ʹÓÃ

1. ¹ØÓÚ Cursor


ÔÚÄãÀí½âºÍʹÓà Android Cursor µÄʱºòÄã±ØÐëÏÈÖªµÀ¹ØÓÚ Cursor µÄ¼¸¼þÊÂÇ飺
Cursor ÊÇÿÐеļ¯ºÏ¡£
ʹÓà moveToFirst() ¶¨Î»µÚÒ»ÐС£
Äã±ØÐëÖªµÀÿһÁеÄÃû³Æ¡£
Äã±ØÐëÖªµÀÿһÁеÄÊý¾ÝÀàÐÍ¡£
Cursor ÊÇÒ»¸öËæ»úµÄÊý¾ÝÔ´¡£
ËùÓеÄÊý¾Ý¶¼ÊÇͨ¹ýϱêÈ¡µÃ¡£
Cursor λÓÚ android.database.CursorÀ࣬¿É¼û³öËüµÄÉè¼ÆÊÇ»ùÓÚÊý¾Ý¿â·þÎñ²úÉúµÄ¡£
ÔÚAndroid ²éѯÊý¾ÝÊÇͨ¹ýCursor ÀàÀ´ÊµÏֵġ£µ±ÎÒÃÇʹÓà SQLiteDatabase.query()·½·¨Ê±£¬¾Í»áµÃµ½Cursor¶ÔÏó£¬ CursorËùÖ¸ÏòµÄ¾ÍÊÇÿһÌõÊý¾Ý¡£



2. ¹ØÓÚ Cursor µÄÖØÒª·½·¨£º
close()
¹Ø±ÕÓα꣬ÊÍ·Å×ÊÔ´


copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)
ÔÚ»º³åÇøÖмìË÷ÇëÇóµÄÁеÄÎı¾£¬½«½«Æä´æ´¢


getColumnCount()
·µ»ØËùÓÐÁеÄ×ÜÊý


getColumnIndex(String columnName)
·µ»ØÖ¸¶¨ÁеÄÃû³Æ£¬Èç¹û²»´æÔÚ·µ»Ø-1


getColumnIndexOrThrow(String columnName)
´ÓÁ㿪ʼ·µ»ØÖ¸¶¨ÁÐÃû³Æ£¬Èç¹û²»´æÔÚ½«Å׳öIllegalArgumentException Òì³£¡£


getColumnName(int columnIndex)
´Ó¸ø¶¨µÄË÷Òý·µ»ØÁÐÃû


getColumnNames()
·µ»ØÒ»¸ö×Ö·û´®Êý×éµÄÁÐÃû


getCount()
·µ»ØCursor ÖеÄÐÐÊý


moveToFirst()
ÒÆ¶¯¹â±êµ½µÚÒ»ÐÐ


moveToLast()
ÒÆ¶¯¹â±êµ½×îºóÒ»ÐÐ


moveToNext()
ÒÆ¶¯¹â±êµ½ÏÂÒ»ÐÐ


moveToPosition(int position)
ÒÆ¶¯¹â±êµ½Ò»¸ö¾ø¶ÔµÄλÖÃ


moveToPrevious()
ÒÆ¶¯¹â±êµ½ÉÏÒ»ÐÐ


3. СÀý×Ó£º
£¨1£© Ϊ¿ÕµÄCursorµÄÅжÏ
if (cur.moveToFirst() == false)
{
//Ϊ¿ÕµÄCursor
return;
}


£¨2£© ·ÃÎÊ Cursor µÄϱê»ñµÃÆäÖеÄÊý¾Ý


int nameColumnIndex = cur.getColumnIndex(People.NAME);
String name = cur.getString(nameColumnIndex);


£¨3£©Ñ­»· Cursor È¡³öÐèÒªµÄÊý¾Ý


while(cur.moveToNext())
{
//¹â±êÒÆ¶¯³É¹¦
//°ÑÊý¾ÝÈ¡³ö
}


µ±cur.moveToNext() Ϊ¼Ùʱ½«Ìø³öÑ­»·£¬¼´CursorÊý¾ÝÑ­»·Íê±Ï¡£


Èç¹ûÄãϲ»¶Óà for Ñ­»·¶ø²»ÏëÓÃWhile Ñ­»·¿ÉÒÔʹÓÃGoogle ÌṩµÄ¼¸Ï·½·¨£º
isBeforeFirst()
·µ»ØÓαêÊÇ·ñÖ¸Ïò֮ǰµÚÒ»ÐеÄλÖÃ


isAfterLast()
·µ»ØÓαêÊÇ·ñÖ¸ÏòµÚ×îºóÒ»ÐеÄλÖÃ


isClosed()
Èç¹û·µ»Ø true ¼´±íʾ¸ÃÓÎÏ·±ê¼º¹Ø±Õ


ÓÐÁËÒÔÉϵķ½·¨£¬¿ÉÒÔÈç´ËÈ¡³öÊý¾Ý:


AbstractCursor
for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())
{
int nameColumn = cur.getColumnIndex(People.NAME);
int phoneColumn = cur.getColumnIndex(People.NUMBER);
String name = cur.getString(nameColumn);
String phoneNumber = cur.getString(phoneColumn);
}


4. ÁíÍ⣬»¹Óм¸¸ö¼ºÖªµÄ×ÓÀ࣬·Ö±ðΪ£º


AbstractWindowedCursor
CrossProcessCursor
CursorWrapper
MatrixCursor
MergeCursor
MockCursor
SQLiteCursor


5. ¿ÉÒԲο¼AndroidÔ´ÂëÖеÄRingtoneManager.java(ÊôÓÚframework²ã)£¬ SoundRecorderÓ¦ÓóÌÐòÀ´Àí½â£¬¿´¿´ËüÃÇÊÇÈçºÎÔËÓõġ£


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºLinuxÖÐLCDÉ豸Çý¶¯ ÏÂһƪ£ºShell¼òµ¥¹ÜÀíiptables½Å±¾

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)