Intent实现简易文件浏览查看器

来源:互联网 发布:淘宝客户分析 编辑:程序博客网 时间:2024/06/05 05:37

使用Intent实现的简易文件浏览查看器,可以实现对本机文件目录(指定或默认sd卡)的文件实现浏览与查看功能。

代码如下:

首先是布局文件:

activity_file:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.newer.intent2.FileActivity">    <ListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/listView"        android:layout_alignParentTop="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true" /></RelativeLayout>

MainActivity:

public class MainActivity extends AppCompatActivity {    ListView listView;    ArrayList<String> data = new ArrayList<>();    ArrayAdapter<String> adapter;    File[] files;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_file);        initView();    }    private void initView() {        listView = (ListView) findViewById(R.id.listView);        //获得本地文件信息列表,绑定listview        files = Environment.getExternalStorageDirectory()                .listFiles();        for (File f : files) {            data.add(f.getName());        }        adapter = new ArrayAdapter<String>(                this,                android.R.layout.simple_list_item_1,                data);        listView.setAdapter(adapter);        listView.setOnItemClickListener(new FileItemClickListener());    }    class FileItemClickListener implements AdapterView.OnItemClickListener {        @Override        public void onItemClick(                AdapterView<?> parent,                View view,                int position,                long id) {            File file = files[position];            if (file.isFile()) {                // 打开                Intent intent = new Intent();                // 打开、显示                intent.setAction(Intent.ACTION_VIEW);                // /mnt/sdcard/abc.jpg                // file:///mnt/sdcard/abc.def.jpg                Uri data = Uri.fromFile(file);                int index = file.getName().lastIndexOf(".");                String suffix = file.getName().substring(index + 1);                String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(suffix);                intent.setDataAndType(data, type);                startActivity(intent);            } else {                // 进入                // 清除列表数据                // 获得目录中的内容,计入列表中                // 适配器通知数据集改变            }        }    }}



2 0