首页 > 系统 > Android > 正文

Android编程实现简单文件浏览器功能

2019-10-22 18:16:35
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程实现简单文件浏览器功能。分享给大家供大家参考,具体如下:

运行效果:

Android,文件浏览器

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="vertical"  android:layout_gravity="center_horizontal"  tools:context=".MainActivity" >  <TextView    android:id="@+id/txt1"    android:layout_width="wrap_content"    android:layout_height="wrap_content" />  <ImageButton    android:id="@+id/imageBt1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/home"/>  <ListView    android:id="@+id/listFile"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >  </ListView></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="horizontal" >  <ImageView    android:id="@+id/images"    android:layout_width="wrap_content"    android:layout_height="wrap_content" />  <TextView    android:id="@+id/txtview"    android:layout_width="wrap_content"    android:layout_height="wrap_content" /></LinearLayout>

java代码:

package com.android.xiong.sdfilelook;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;public class MainActivity extends Activity {  private ListView listfile;  //当前文件目录  private String currentpath;  private TextView txt1;  private ImageView images;  private TextView textview;  private ImageButton imagebt1;  private int[] img = { R.drawable.file, R.drawable.folder, R.drawable.home };  private File[] files;  private SimpleAdapter simple;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    listfile = (ListView) findViewById(R.id.listFile);    txt1 = (TextView) findViewById(R.id.txt1);    imagebt1 = (ImageButton) findViewById(R.id.imageBt1);    init(Environment.getExternalStorageDirectory());    listfile.setOnItemClickListener(new OnItemClickListener() {      @Override      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,          long arg3) {        // TODO Auto-generated method stub        // 获取单击的文件或文件夹的名称        String folder = ((TextView) arg1.findViewById(R.id.txtview))            .getText().toString();        try {          File filef = new File(currentpath + '/'              + folder);          init(filef);        } catch (Exception e) {          e.printStackTrace();        }      }    });    //回根目录    imagebt1.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View v) {        init(Environment.getExternalStorageDirectory());      }    });  }  // 界面初始化  public void init(File f) {    if (Environment.getExternalStorageState().equals(        Environment.MEDIA_MOUNTED)) {      // 获取SDcard目录下所有文件名      files = f.listFiles();      if (!files.equals(null)) {        currentpath=f.getPath();        txt1.setText("当前目录为:"+f.getPath());        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();        for (int i = 0; i < files.length; i++) {          Map<String, Object> maps = new HashMap<String, Object>();          if (files[i].isFile())            maps.put("image", img[0]);          else            maps.put("image", img[1]);          maps.put("filenames", files[i].getName());          list.add(maps);        }        simple = new SimpleAdapter(this, list,            R.layout.fileimageandtext, new String[] { "image",                "filenames" }, new int[] { R.id.images,                R.id.txtview });        listfile.setAdapter(simple);      }    } else {      System.out.println("该文件为空");    }  }  @Override  public boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.main, menu);    return true;  }}

权限控制:

<!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

希望本文所述对大家Android程序设计有所帮助。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表