`
bogongjie
  • 浏览: 230932 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Android 可選文件格式瀏覽器

阅读更多

 

 

package training.filesystem;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.R.integer;
import android.R.layout;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout.LayoutParams;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class FilesystemActivity extends ListActivity implements OnClickListener, OnItemSelectedListener {
	private TextView hint;
	private ListView list;
	private TextView filename;
	private Spinner filetype;
	private Button oKButton,cancelButton;
	private String root = "/";
	private String root_sdcard = "/mnt/sdcard";
	private ArrayList<String> path;
	private ArrayList<Map<String, Object>> item;
	private ArrayList<Version> aboutVersionList = new ArrayList<Version>();
	private String pathString;
	private String PATH_FILE_NAME;
	private AlertDialog warnAlertDialog;
	private AlertDialog errorAlertDialog;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.main);
		hint = (TextView) findViewById(R.id.path);
		filename =(TextView)findViewById(R.id.name);
		oKButton = (Button)findViewById(R.id.ok);
		cancelButton = (Button)findViewById(R.id.cancel);
		filetype = (Spinner)findViewById(R.id.spinner);
		filetype.setOnItemSelectedListener(this);
		list = this.getListView();
		oKButton.setOnClickListener(this);
		cancelButton.setOnClickListener(this);
		getfiledir(root_sdcard,0);
		
		
		
		WindowManager manager = getWindowManager();
		Display display = manager.getDefaultDisplay();
		android.view.WindowManager.LayoutParams params = getWindow().getAttributes();
		params.height = (int)(display.getHeight() * 0.5);
		params.width = (int)(display.getWidth() * 0.5);
		params.dimAmount = 0.0f;
		getWindow().setAttributes(params);
		getWindow().setGravity(Gravity.CENTER);

	}

	protected void getfiledir(String filepath,int type) {
		final int abcd = type;
		item = new ArrayList<Map<String, Object>>();
		path = new ArrayList<String>();
		hint.setText(filepath);
		pathString = filepath;
		File f = new File(filepath);
		File[] files = f.listFiles();
		if (!filepath.equals(root)) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("icon", R.drawable.up_folder);
			map.put("name", "back to /");
			item.add(map);
			path.add("/mnt/sdcard/");
			Map<String, Object> map2 = new HashMap<String, Object>();
			map2.put("icon", R.drawable.up_folder);
			map2.put("name", "back to ../");
			item.add(map2);
			path.add(f.getParent());
		}
		if (files != null) {
			for (int i = 0; i < files.length; i++) {
				if(type == 0){
					Map<String, Object> map = new HashMap<String, Object>();
					
					if (files[i].isDirectory()) {
						map.put("icon", R.drawable.folder);
					}else {
						map.put("icon", R.drawable.file);
					}
					map.put("name", files[i].getName());
					item.add(map);
					path.add(files[i].getPath());
				}else if (type == 1) {
					if (files[i].isDirectory()) {
						Map<String , Object> map = new HashMap<String, Object>();
						map.put("icon", R.drawable.folder);
						map.put("name", files[i].getName());
						item.add(map);
						path.add(files[i].getPath());
					}
				}else if (type == 2) {
					if (files[i].isFile()) {
						Map<String, Object> map = new HashMap<String, Object>();
						map.put("icon", R.drawable.file);
						map.put("name", files[i].getName());
						item.add(map);
						path.add(files[i].getPath());
					}
				}
			}
		}
		SimpleAdapter simpleAdapter = new SimpleAdapter(FilesystemActivity.this, item, R.layout.line, new String[]{"icon","name"}, new int[]{R.id.icon,R.id.name});
		list.setAdapter(simpleAdapter);
		list.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				File file = new File(path.get(arg2));
				if (file.isDirectory()) {
					getfiledir(path.get(arg2),abcd);
				} else {
					Toast.makeText(FilesystemActivity.this, "这是一个文件!",
							Toast.LENGTH_SHORT).show();
					filename.setText(file.getName());
					PATH_FILE_NAME = file.getName();
				}
			}

		});
	}
	public boolean GetVersionInfo(){
		String tempString = null;
		boolean isHaveVersion = false;
		try {
			File file = new File(pathString + "/" + PATH_FILE_NAME);
			FileReader fileReader = new FileReader(file);
			BufferedReader bufferedReader = new BufferedReader(fileReader);
			while ((tempString = bufferedReader.readLine()) != null) {
				if (tempString.startsWith("[")) {
					if (tempString.substring(tempString.indexOf("[")+1,tempString.indexOf("]")).equals("Version")) {
						tempString = bufferedReader.readLine();
						Version version = new Version();
						String[] splitString = tempString.split(",");
						if (splitString.length != 3) {
							break;
						}
						version.VERSION_ID = splitString[0];
						version.VERSION_DEVICE = splitString[1];
						version.VERSION_PLATFORM = splitString[2];
						aboutVersionList.add(version);
						isHaveVersion = true;
						break;
					}
				}
				
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return false;
		}
		if (isHaveVersion) {
			return true;
		}else {
			return false;
		}
	}
	public class Version{
		String VERSION_ID;
		String VERSION_PLATFORM;
		String VERSION_DEVICE;
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		if (v == oKButton) {
			if(GetVersionInfo()){
				Version version = aboutVersionList.get(0);
				warnAlertDialog = new AlertDialog.Builder(this).setIcon(R.drawable.warning).setTitle(getText(R.string.dialog_title))
						.setMessage(getText(R.string.dialog_content_id) + version.VERSION_ID +"\n" +
								getText(R.string.dialog_content_platform) + version.VERSION_PLATFORM + "\n" +
								getText(R.string.dialog_content_device) + version.VERSION_DEVICE + "\n" +
								getText(R.string.dialog_content)).setPositiveButton(getText(R.string.dialog_ok), new DialogInterface.OnClickListener() {
									
									@Override
									public void onClick(DialogInterface dialog, int which) {
										// TODO Auto-generated method stub
										
									}
								}).setNegativeButton(getText(R.string.dialog_cancel), new DialogInterface.OnClickListener() {
									
									@Override
									public void onClick(DialogInterface dialog, int which) {
										// TODO Auto-generated method stub
										
									}
								}).show();
			}else {
				errorAlertDialog = new AlertDialog.Builder(this).setIcon(R.drawable.warning).setTitle(getText(R.string.dialog_title))
						.setMessage(getText(R.string.dialog_error))
						.setPositiveButton(getText(R.string.dialog_ok), new DialogInterface.OnClickListener() {
							
							@Override
							public void onClick(DialogInterface dialog, int which) {
								// TODO Auto-generated method stub
								
							}
						}).show();
			}
		}
	}

	@Override
	public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		// TODO Auto-generated method stub
		String aString = filetype.getSelectedItem().toString();
		if (aString.equals("所有档案")) {
			getfiledir(pathString,0);
		}else if (aString.equals("文件夹")) {
			getfiledir(pathString, 1);
		}else if (aString.equals("文件")) {
			getfiledir(pathString, 2);
		}
	}

	@Override
	public void onNothingSelected(AdapterView<?> arg0) {
		// TODO Auto-generated method stub
		
	}
}
分享到:
评论

相关推荐

    html5+js实现手机录音功能,支持微信等80%的浏览器内核

    录音默认输出mp3格式,另外可选wav格式(此格式录音文件超大);有限支持ogg(beta)、webm(beta)格式;支持任意格式扩展(前提有相应编码器)。 mp3默认16kbps的比特率,2kb每秒的录音大小,音质还可以(如果使用8...

    新版Android开发教程.rar

    ----------------------------...• 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

    傲游浏览器手机版 v4.3.4 安卓版.zip

    傲游云浏览器Android版是针对Android系统精心打造的浏览器, 同时也是全球首款拥有云标签、云推送、云下载、云收藏功能的多标签网页浏览器。炫酷的界面,创新的手势操作、阅读模式、应用中心等强大功能,给用户带来...

    Alook浏览器安卓版 v8.0.0 支持视频播放16倍速的浏览器

    音/视频悬浮,8倍速(支持0.5-16.0),分享链接,后台播放,AirPlay,小窗播放,单曲循环 ,画中画…内置Adblock Plus,可选多语言规则和第三方规则,支持手动编辑标记广告,自动屏蔽侵入式广告。文件管理支持手动...

    android开发入门与实战(下)

    3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    • 优化的图形库 包括定制的2D 图形库,3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264...

    Android编程入门很简单.(清华出版.王勇).part1

    4.1.3使用文件浏览器 4.1.4使用模拟器控制 4.1.5 使用日志 4.1.6使用Screen Capture捕捉设备屏幕 4.2 使用Android调试桥 4.2.1使用ADB 4.2.2显示连接到计算机的设备 4.2.3针对特定设备操作 4.2.4启动和停止ADB 4.2.5...

    Google Android SDK开发范例大全(完整版)

    adb 实用程序支持一些可选命令行参数,以提供强大的特性,例如复制文件到设备或从设备复制文件。可以使用 shell 命令行参数连接到手机本身,并发送基本的 shell 命令。图 4 显示在通过 USB 线连接到 Windows 笔记本...

    android开发入门与实战(上)

    3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及...

    《Google Android开发入门与实战》.pdf

    3.3.2 拓展开发外延——android可选api介绍 34 3.4 本章小结 34 第4章 赚钱的市场——android market及应用发布 35 4.1 google market产生背景与目的 35 4.2 体验“选货”的乐趣——在g1上体验market的...

    Android编程入门很简单.(清华出版.王勇).part2

    4.1.3使用文件浏览器 4.1.4使用模拟器控制 4.1.5 使用日志 4.1.6使用Screen Capture捕捉设备屏幕 4.2 使用Android调试桥 4.2.1使用ADB 4.2.2显示连接到计算机的设备 4.2.3针对特定设备操作 4.2.4启动和停止ADB 4.2.5...

    android开发中文教程

    优化的图形库:包括2D 和3D 图形库,3D 图形库基于OpenGL ES 1.0 (硬件加速可选) SQLite:用作结构化的数据存储 多媒体支持:包括常见的音频、视频和静态印象文件格式(如MPEG4、H.264、MP3、 AAC、AMR、JPG、PNG...

    Google.Android开发入门与实战

    3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及...

    Google Android开发入门与实战的代码

    3.3.2 拓展开发外延——Android可选API介绍 34 3.4 本章小结 34 第4章 赚钱的市场——Android Market及应用发布 35 4.1 Google Market产生背景与目的 35 4.2 体验“选货”的乐趣——在G1上体验Market的...

    Android Office 文档处理软件 Smart Office 3.4.8 中文多语免费版.zip

    ★从可选的模板创建新的文档。 ★文件浏览方便,快捷。 ★正确保存在原来的格式,而不会丢失数据。 —文件格式— ★微软办公室:自1997年以来的所有版本: ★Word,PowerPoint和Excel 97中,2000,XP,2003年,2007...

    Android基础知识详解

    Webkit浏览器引擎简介 9 Dalvik虚拟机简介 11 什么是Dalvik虚拟机 11 Dalvik和Android系统 11 Dalvik虚拟机的主要特征 12 Android应用开发和Dalvik虚拟机 15 Activity生命周期 16 一、Activity栈 16 二、Activity的4...

    X-plore File Manager.apk

    从你通过WiFi其他Android设备的Andr​​oid设备上访问文件。 从PC的Web浏览器访问 管理您从您的电脑的Andr​​oid设备上的文件。 支持访问FTP和FTPS(安全FTP)服务器。 多个服务器可以被配置。 的X PLORE可以显示在...

    通知:浏览器桌面通知

    chrome浏览器桌面通知简介用于其余B / S下的网络办公提醒功能。页面最小化的状态下发送通知仍显示在屏幕的右下角,马上可以看到内容依赖PC chrome浏览器。...设置通知显示方式(可选。不设置采用替代模式

Global site tag (gtag.js) - Google Analytics