2011-10-16 2 views
1

SD 카드에 생성 된 폴더의 비디오 파일로 listview를 채우려고합니다. 사용 중입니다.listview의 SD 카드에서 특정 폴더의 비디오를 표시합니다.

managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,mystring, null, null, null); 

그러나 sdcard에 저장된 모든 비디오가 채워지지만 특정 폴더에 저장된 비디오 만 필요합니다. 또한

Uri uri = Uri.fromFile(filepath); 
cursor = managedQuery(uri, mystring , null , null , null); 

Uri uri = Uri.parse(filepath); 
cursor = managedQuery(uri, mystring , null , null , null); 

을 사용했다 그러나 그것은 작동하지 않습니다. 나는 많은 노력을했고 아직 도움이되지 않은 구글로부터 도움을 얻었다. 해당 폴더의 경로를 지정할 방법이 있습니까? 또는 다른 방법으로?

답변

0

당신은 파일이

item = new ArrayList<String>(); 
path = new ArrayList<String>(); 

File f = new File("/sdcard/"); 

// or you can use File f=new File(Environment.getExternalStorageDirectory().getPAth()); 
File[] files = f.listFiles(); 


for(int i=0; i < files.length; i++) 
{ 
    File file = files[i]; 
    path.add(file.getPath()); 
    if(file.isDirectory()) 
    item.add(file.getName() + "/"); 
    else 
    item.add(file.getName()); 
} 

ArrayAdapter<String> fileList = 
    new ArrayAdapter<String>(this, R.layout.row, item); 
setListAdapter(fileList); 
+0

감사합니다. Andrei. 나는 당신의 코드를 시도했다. setListAdapter는 타입 활동에 대해 정의되지 않았다. 그리고 그 행에 대한 개인 OnItemClickListener 작성해야합니다 videogridlistener = 새로운 OnItemClickListener() 메서드를? – Larik

+0

사실 여기 커서를 사용하고 있습니다. 어떻게 커서를 사용할 수 있습니까? – Larik

+0

안녕하세요, 이미지를 표시하는 중 [여기] (http://stackoverflow.com/questions/5039779/displaying-images-from-a-specific-folder-on-the-sdcard-using-a-gridview) 예가 있습니다. 커서를 사용하여. 필요에 맞게 조정할 수 있습니다. – Andrei

0

헤이 전체 sdcard에 검색 managedquery이 아닌 특정 폴더와 같은 특정 위치를 형성 얻을 수 있습니다. 위의 방법은 파일 이름을 표시하는 데는 사실이지만 축소판을 표시하고 thumbmail을 만들고 Hashmap에 저장하여 갤러리 어댑터 목록에 채우는 경우 ..........

1

이 코드를 사용하여 특정 폴더의 비디오를 다음과 같이 얻으십시오 :

String selection=MediaStore.Video.Media.DATA +" like?"; 
     String[] selectionArgs=new String[]{"%FolderName%"}; 
     videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, 
       parameters, selection, selectionArgs, MediaStore.Video.Media.DATE_TAKEN + " DESC"); 
관련 문제