我正在尝试为Android构建一个应用程序。我在回收站视图中有一个安卓卡列表。一个例子:
在左侧的标题,专辑和年份附近,我插入了100dp x 100dp的Imageview空间。 Xml的结构是http://pastebin.com/t3spdaTS
所有信息都在应用程序内的sqlite中的简单数据库中。我在/sdcard/my_app_name
中保存了一些带有渐进数1.jpg, 2.jpg, ecc...
的图像,其中数字是数据库中的行。现在我如何将这些图像放在每张卡片中?我试着在里面写
dbHelper = new DBHelper(getApplicationContext());
Cursor cursor = dbHelper.getDisks();
cursor.moveToFirst();
...
ImageView iv = (Imageview)find
while(!cursor.isAfterLast()){
count++;
String artist = cursor.getString(cursor.getColumnIndex(DBHelper.COL_ARTIST));
...
AlbumCard albumCard = new AlbumCard(0, artist, album, year);
String path = "sdcard/Warehouse_app/" + count + ".jpg";
iv.setImageDrawable(Drawable.createFromPath(path));
list.add(albumCard);
cursor.moveToNext();
}
但是iv.setImage
给了我一个`null指针异常。我该如何解决这个问题?谢谢大家。
答案 0 :(得分:0)
NullPointerException意味着Drawable.createFromPath(path)返回null,路径出现问题。
你应该以这种方式获得SD卡路径
String path = Environment.getExternalStorageDirectory().getAbsolutePath()
+ File.separator + "Warehouse_app"
+ File.separator + count + ".jpg";
那么也许你应该检查这个文件是否存在:
File checkIfFileExists = new File(path);
if(File.exist()){
iv.setImageDrawable(Drawable.createFromPath(path));
}
忘了:你应该在AndroidManifest中添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />