Android 陷入圈套?应用程序不会崩溃,但也不会显示或工作
我有一个方法,应该返回“item”的arraylist(包含三个字符串,name、imageurl、audiourl) 在文件系统中,我在同一文件夹中有匹配的文件名(扩展名jpg、png、mp3除外) 我正在尝试搜索该文件夹,并收集所有与jpg/png或mp3匹配的文件。把这个放进arraylist 我认为它有以下代码:Android 陷入圈套?应用程序不会崩溃,但也不会显示或工作,android,for-loop,arraylist,Android,For Loop,Arraylist,我有一个方法,应该返回“item”的arraylist(包含三个字符串,name、imageurl、audiourl) 在文件系统中,我在同一文件夹中有匹配的文件名(扩展名jpg、png、mp3除外) 我正在尝试搜索该文件夹,并收集所有与jpg/png或mp3匹配的文件。把这个放进arraylist 我认为它有以下代码: public ArrayList<PictureItem> getArrayOfPictureItemFromFolder(String directoryP
public ArrayList<PictureItem> getArrayOfPictureItemFromFolder(String directoryPath) {
ArrayList<PictureItem> arrayOfPictureItems = new ArrayList<PictureItem>();
PictureItem pi;
File directory = new File(directoryPath);
File[] imageListing = directory.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.toLowerCase().endsWith(".png")) {
return name.toLowerCase().endsWith(".png");
}
if (name.toLowerCase().endsWith(".jpg")) {
return name.toLowerCase().endsWith(".jpg");
} else {
return false;
}
}
});
File[] audioListing = directory.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".mp3");
}
});
if (imageListing != null) {
for (int i = 0; i < imageListing.length; i++) {
String imagePath = imageListing[i].toString();
String imagetitle = imageListing[i].getName();
int removeImageExtension = imagetitle.lastIndexOf(".");
if (removeImageExtension > 0) {
imagetitle = imagetitle.substring(0, removeImageExtension);
}
for (int j = 0; j < audioListing.length; i++) {
String audioPath = audioListing[j].toString();
String audioTitle = audioListing[j].getName();
int removeAudioExtension = audioTitle.lastIndexOf(".");
audioTitle = audioTitle.substring(0, removeAudioExtension);
if (imagetitle.equals(audioTitle)) {
pi = new PictureItem(imagePath, imagetitle);
pi.setSoundPath(audioPath);
arrayOfPictureItems.add(pi);
}
}
}
} else {
return null;
}
return arrayOfPictureItems;
}
我知道,当我刚刚扫描了目录并将所有内容添加到arraylist中而没有对名称进行排序时,应用程序的其余部分都可以工作。我试图设置断点并在调试模式下运行,但它拒绝在代码中的任何地方停止,包括启动前代码。如果我//除return arrayOfPictureItems之外的所有内容,应用程序返回按钮将再次工作,断点也将再次工作…你的第二个for循环增量
i
而不是j
-因此j
永远不会更改。!我只是在查看代码时看到,我有一个i++在第二个for循环中,应该是j。。。这修复了“锁”,我现在用声音显示图片。但它们没有正确匹配。如果我按下猫的图像,它会播放音频=狗…有什么建议我的排序/匹配功能有什么问题吗?我不知所措(自动取款机:)
11-27 01:59:29.778 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 22ms, total 22ms
11-27 01:59:29.939 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 21ms, total 21ms
11-27 01:59:30.108 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 25ms, total 25ms
11-27 01:59:30.278 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 21ms, total 21ms
11-27 01:59:30.439 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 22ms, total 22ms
11-27 01:59:30.611 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 21ms, total 21ms
11-27 01:59:30.778 7424-7424/picturedtalk.com.picturedtalk D/dalvikvm﹕ GC_FOR_ALLOC
freed 3072K (98250), 43% free 4233K/7424K, paused 22ms, total 22ms