在sdcard文件夹的listview中显示视频文件

时间:2011-10-12 00:17:55

标签: android listview video sd-card

我正试图在sdcard上的'abc'文件夹中显示listview中的视频文件,我已成功显示,但问题是它显示存储在SD卡上的所有视频文件,甚至是文件夹'abc'实际上我只想存储视频文件在文件夹'abc'中显示。我在google搜索更多天,但没有找到任何解决方案。我的代码是:

videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
proj, null, null, null);
count = videocursor.getCount();
videolist = (ListView) findViewById(R.id.listview);
videolist.setAdapter(new VideoAdapter(getApplicationContext()));
videolist.setOnItemClickListener(videogridlistener);
}
private OnItemClickListener videogridlistener = new OnItemClickListener() {
public void onItemClick(AdapterView<?>parent, View v, int position,
long id) {
System.gc();
video_column_index = videocursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
videocursor.moveToPosition(position);
String filename = videocursor.getString(video_column_index);
Intent intent = new Intent(VideoActivity.this, ViewVideo.class);
intent.putExtra("videofilename", filename);
startActivity(intent);
}
};

public class VideoAdapter extends BaseAdapter {
private Context vContext;
public VideoAdapter(Context c) {
vContext = c;
}

public int getCount() {
return count;
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
TextView tv = new TextView(vContext.getApplicationContext());
String id = null;
if (convertView == null) {
video_column_index = videocursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE);
videocursor.moveToPosition(position);
id = videocursor.getString(video_column_index);
tv.setText(id);
} 
else
{
tv = (TextView) convertView;
return tv;
}

任何提示?提前致谢。

3 个答案:

答案 0 :(得分:0)

在这种情况下,请勿使用内容提供商。内容提供商会向您提供有关您可在设备上找到的所有视频的信息。

编写自己的小工具来扫描并选取所需的文件/文件夹。

答案 1 :(得分:0)

为托管查询提供过滤条件,以过滤您的文件夹名称。

查看javadoc for the method。它有选择记录的标准。这应该允许您选择所需的子集。

答案 2 :(得分:0)

不要使用以下代码:

video_column_index = videocursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);

使用以下代码编辑此代码:

videocursor = MainActivity.this.managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,null,MediaStore.Images.Media.DATA +“like?”,new String [] {“%abc%”},null); < / p>

这将帮助您确定.......