package com.Kiro.Test;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
public class TestActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
setContentView(R.layout.main);
Uri uri=People.CONTENT_URI;
String projection[]=new String[]{People._ID,People.NAME,People.NUMBER};
Cursor cur=this.managedQuery(uri, projection, null, null, null);
int id=cur.getColumnIndex(People._ID);
super.onCreate(savedInstanceState);
do{
System.out.print(cur.getString(id));
System.out.println("");
}while(cur.moveToNext());
}
}当我在我的模拟器中运行这段代码时,logcat发现CursorIndexoutofBoundsException,你能帮我解决这个问题吗??
发布于 2012-02-10 09:00:23
问题就在这里:
do{
System.out.print(cur.getString(id));
System.out.println("");
}while(cur.moveToNext());您需要首先调用cur.moveToFirst()来设置第0位置的游标:
cur.moveToFirst();
while(cur.hasNext(){
cur.moveToNext();
System.out.print(cur.getString(id));
System.out.println("");
}发布于 2012-02-10 09:29:34
而不是使用“做,而同时”尝试与时间,因为做,同时运行,至少一次,甚至条件是假的。
while(cur.moveToNext()){
System.out.print(cur.getString(id));
System.out.println("");
} 这就是问题所在。
https://stackoverflow.com/questions/9225075
复制相似问题