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

使用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 {
                // 进入
                // 清除列表数据
                // 获得目录中的内容,计入列表中
                // 适配器通知数据集改变
            }
        }
    }
}



你可能感兴趣的:(intent,android文件查看器)