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无用
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!