时间:2021-05-20
本文实例讲述了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权限描述大全
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文主要讲解Android浏览器的开发实例,有三部分内容:启动Android默认浏览器、指定浏览器进行访问以及打开本地的html文件。一、启动Android默认
本文主要讲解Android浏览器的开发实例,有三部分内容:启动Android默认浏览器、指定浏览器进行访问以及打开本地的html文件。一、启动Android默认
本文实例讲述了Android编程实现文件浏览功能的方法。分享给大家供大家参考,具体如下:最近正在弄上传文件,当时想怎么能实现fileDialog的功能呢,打开文
本文实例讲述了ASP.NET实现推送文件到浏览器的方法。分享给大家供大家参考。具体分析如下:这里主要实现从服务器到浏览器,推送文件,提供用户下载/浏览的功能。提
本文实例讲述了Android开发实现浏览器全屏显示功能。分享给大家供大家参考,具体如下:业务需求:浏览器设置中支持全屏显示的功能。分析:只需要在设置界面上增加是