软件编程
位置:首页>> 软件编程>> Android编程>> Android编程实现简单文件浏览器功能

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

作者:村头那抠脚大叔  发布时间:2022-01-02 06:13:46 

标签:Android,文件浏览器

本文实例讲述了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程序设计有所帮助。

来源:http://blog.csdn.net/x605940745/article/details/12580367

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com