Android SQLite:rawquery疑难解答
问题描述:
好吧,我一直在研究这个“动态负载的微调”从这个论坛anddev.org我修复了力量关闭错误我已经得到了现在我一直有问题,当我开始使用我的sql变量,从模拟器开始,它对我来说是锁定的,好像光标停留在一个循环中,logcat不显示任何错误。任何关于它可能会粘在哪里的想法?Android SQLite:rawquery疑难解答
public static final String KEY_ROWID = "_rowid";
public static final String KEY_ONE = "serial";
public static final String KEY_TWO = "name";
public static final String KEY_THREE = "place";
private static final String KEY_DB = "DbTester";
private static final String KEY_TABLE = "DbTable";
private static final int VERSION = 1;
//static final String DB_NAME="contacts";
//static final String NAMES_TABLE="names";
private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDB;
SQLiteDatabase db=null;
那么这里就是我的方法loadSpinner()
DbHelper dbhelper=new DbHelper(this.ourContext, KEY_TABLE, null, 2);
db=dbhelper.getWritableDatabase();
Cursor c=db.rawQuery("SELECT * FROM "+KEY_TWO, null);
if(c != null) {
while(!c.isLast())
c.moveToNext(); //I dont understand why but it's necessary (alternative call c.getCount())
String[] from=new String[1];
from[0]="name";
int[] to=new int[1];
to[0]=android.R.id.text1;
SimpleCursorAdapter adapter=new SimpleCursorAdapter(this.ourContext, android.R.layout.simple_spinner_item, c, from, to);
c.close();
db.close();
return adapter;
}
想不出其他任何可能助阵,如果不再的信息是只需要这么说,我会张贴。在此先感谢
答
我看到的三件证据:
1)您的模拟器已锁定。
2)根据我的经验,虽然声明因引起锁定而臭名昭着。
3)你不知道你的while语句做什么,但你需要它。
测试推荐:
尝试用if语句,使只有一个调用c.MoveToNext(),看看您是否仍然得到锁定取代时间。如果是这样,你已经缩小了这个问题。
感谢您的帮助,通过应用程序进行故障排除,帮助我们获得了巨大的帮助 – acrichm 2011-12-26 05:29:08