2012-02-14 129 views
0

像我saome问题,我的应用程序 我有这样显示从数据库SQLite的

Cursor cur=helper.getGamb(almagId); 
cur.moveToFirst(); 
if(cur.getString(1).equals("")){ 
detGam.setImageResource(R.drawable.gambarnf); 
}else detGam.setImageDrawable(Drawable.createFromPath(cur.getString(1))); 
return Drawable.createFromPath(cur.getString(1)); 

代码,但我有这样

02-14 14:02:16.623: ERROR/AndroidRuntime(16468): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580) 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214) 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41) 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  at com.sat.alfaloc.Detail.load(Detail.java:186) 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  at com.sat.alfaloc.Detail.onCreate(Detail.java:100) 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-14 14:02:16.623: ERROR/AndroidRuntime(16468):  ... 11 more 

我应该怎么做错误修复呢? ?谢谢:)

+0

首先你需要检查光标的计数。请使用cur.getCount()方法并查看光标中有多少条记录。因为您的错误发生,因此可能是光标中没有记录。 – 2012-02-14 07:18:39

回答

0

试试这个:

//assuming that you have fetched the data using cursor: 
byte[] image1 = cursor.getBlob(cursor.getColumnIndexOrThrow("image_data")); 
imageView1.setImageBitmap(BitmapFactory.decodeByteArray(image1, 0, image1.length)); 
0

如果在数据库中存储图像路径而不是图像,则更好。使用存储在数据库中的图像路径访问这些图像。

+0

是的,我保存路径图像,但我保存在其他表与其他数据此路径..我想检索此路径进入我的应用程序,但我在这部分'detGam.setImageDrawable(Drawable.createFromPath(cur。 getString(1)))'..你可以告诉我修复此代码??谢谢 – akubabas 2012-02-16 02:06:16

+0

得到像这样的可绘制“detGam.setImageDrawable(Drawable.createFromPath(cur.getString(cur.getColumnName(”your column name))) );“这意味着使用您的列名称来获取价值 – 2012-02-17 04:01:09