android中怎么去获取sd卡只含有视频的文件夹,含有视频文件夹显示到listview中,求解答
4条回答 默认 最新
- 彩色贝 2016-07-02 11:12关注
package com.example.caiqiufang;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore.Video.Media;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class MainActivity extends Activity
{
ListView listView_show;
ArrayList names = new ArrayList(); //显示名
ArrayList fileNames = new ArrayList();//存储文件绝对路径@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView_show = (ListView) findViewById(R.id.listView_audio); // 清空names、descs、fileNames集合里原有的数据。 names.clear(); //descs.clear(); fileNames.clear(); // 通过ContentResolver查询所有图片信息 Cursor cursor = getContentResolver().query( Media.EXTERNAL_CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { // 获取音频的显示名 String name = cursor.getString(cursor .getColumnIndex(Media.DISPLAY_NAME)); // 获取音频的保存位置的数据 byte[] data = cursor.getBlob(cursor .getColumnIndex(Media.DATA)); // 将图片名添加到names集合中 names.add(name); // 将图片保存路径添加到fileNames集合中 fileNames.add(new String(data, 0, data.length - 1)); } // 创建一个List集合,List集合的元素是Map List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(); // 将names集合对象的数据转换到Map集合中 for (int i = 0; i < names.size(); i++) { Map<String, Object> listItem = new HashMap<String, Object>(); listItem.put("name", names.get(i)); listItems.add(listItem); } // 创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter( MainActivity.this, listItems , R.layout.listview_items, new String[] { "name" } , new int[] {R.id.video_name}); // 为show ListView组件设置Adapter listView_show.setAdapter(simpleAdapter); // 为show ListView的列表项单击事件添加监听器 listView_show.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent , View source, int position, long id) { //点击某一个listview的item,显示该文件的绝对路径 Toast.makeText(MainActivity.this, fileNames.get(position), Toast.LENGTH_SHORT).show(); } }); }
}
下面是layout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/listView_audio"/>
listview中的东西你应该会吧,这是只获取手机内存卡中的视频的,同样的方法可以获取音频,音乐。其他的自己探索下吧
至于你说的获取文件夹,那样的话比较麻烦,所以你还是直接获取视频为好
如果有用的话就给点积分吧解决 3无用
悬赏问题
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值