Android編程實現(xiàn)簡單文件瀏覽器功能
本文實例講述了Android編程實現(xiàn)簡單文件瀏覽器功能。分享給大家供大家參考,具體如下:
運行效果:

布局:
<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;
//當(dāng)前文件目錄
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("當(dāng)前目錄為:"+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;
}
}
權(quán)限控制:
<!-- 在SDCard中創(chuàng)建與刪除文件權(quán)限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 往SDCard寫入數(shù)據(jù)權(quán)限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
更多關(guān)于Android權(quán)限控制可參考Android權(quán)限描述大全
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android文件操作技巧匯總》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android布局layout技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android編寫文件瀏覽器簡單實現(xiàn)
- Android中調(diào)用系統(tǒng)的文件瀏覽器及自制簡單的文件瀏覽器
- 微信或手機(jī)瀏覽器在線顯示office文件(已測試ios、android)
- 讀寫Android中assets目錄下的文件的方法詳解
- Android如何遍歷特定目錄下所有文件
- Android遍歷所有文件夾和子目錄搜索文件
- 讀取android根目錄下的文件或文件夾實例
- Android 將文件下載到指定目錄的實現(xiàn)代碼
- Android編程實現(xiàn)將壓縮數(shù)據(jù)庫文件拷貝到安裝目錄的方法
- Android開發(fā)實現(xiàn)讀取assets目錄下db文件的方法示例
相關(guān)文章
Android TabHost如何實現(xiàn)頂部選項卡
這篇文章主要介紹了Android TabHost如何實現(xiàn)頂部選項卡,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Android實現(xiàn)多次閃退清除數(shù)據(jù)
這篇文章主要介紹了Android實現(xiàn)多次閃退清除數(shù)據(jù)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-04-04
老生常談Listview中onItemClick中的各個參數(shù)(推薦)
下面小編就為大家?guī)硪黄仙U凩istview中onItemClick中的各個參數(shù)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
詳解Android提交數(shù)據(jù)到服務(wù)器的兩種方式四種方法
本篇文章主要介紹了Android提交數(shù)據(jù)到服務(wù)器的兩種方式四種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-11-11
Android Rreact Native 常見錯誤總結(jié)
這篇文章主要介紹了Android Rreact Native 常見錯誤總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-06-06

