java - 从数据库获取文件名并使用它来填充 ImageView

标签 java android database sqlite

我正在创建一个应用程序,此时需要从 sqlite 数据库获取文件名,获取具有该文件名的图像并将其插入 ImageView 中,我现在已经创建了此代码,但我认为我'我在这里做的一切都错了......

Database db = new Database(getApplicationContext());
SQLiteDatabase readableDatabase = db.getReadableDatabase();
final Cursor curFileName = readableDatabase.rawQuery("select filename from data order by id asc", null);
image = (ImageView) findViewById(R.id.image);
int filename = curFileName.getColumnIndex("filename");
String filenameString = curFileName.getString(filename);
d = Drawable.createFromPath(Environment.getExternalStorageDirectory().toString()+filenameString);
Toast.makeText(getApplicationContext(), filenameString, Toast.LENGTH_SHORT).show();
handleDrawable(d);

是的,抱歉,这是异常(exception):

04-09 13:48:16.950: E/AndroidRuntime(30802): FATAL EXCEPTION: main
04-09 13:48:16.950: E/AndroidRuntime(30802): java.lang.RuntimeException: Unable to start activity ComponentInfo{g.d.filer/g.d.filer.Favorites}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 33

最佳答案

您必须先定位光标才能阅读

 int filename = curFileName.getColumnIndex("filename");
 if (cur.moveToFirst()) { // position cursor to first item. false: empty resultset
     String filenameString = curFileName.getString(filename);
     d = Drawable.createFromPath(Environment.getExternalStorageDirectory().toString()+filenameString);
     Toast.makeText(getApplicationContext(), filenameString, Toast.LENGTH_SHORT).show();
     handleDrawable(d);
     ...
 }

关于java - 从数据库获取文件名并使用它来填充 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22961806/

相关文章:

java - Android java.lang.NullPointerException getActionBar()

java - 如何使用 Precise Biometrics Tactivo 的输入验证智能/CAC 卡

android - 通过 Webrtc 在 Android 上进行系统音频流式传输

android - 如何获取 1 个月的 GPRS 移动数据使用量?

php - 将多行数据插入多列数据库表

java - Android 中的 Listview 适配器和监听器?

java - Android - 如何知道设备何时平地?

python - django - 当我想在卡片/索引页面上显示内容时,我从数据库中看不到任何内容

java - 如何在 Windows 上使用单个命令行编译和运行 Java

database - Neo4j 的数据建模工具