Android中调用系统的文件浏览器及自制简单的文件浏览器_Android

调用系统自带的文件浏览器
这很简单:

/** 调用文件选择软件来选择文件 **/
private void showFileChooser() {
  intent = new Intent(Intent.ACTION_GET_CONTENT);
  intent.setType("*/*");
  intent.addCategory(Intent.CATEGORY_OPENABLE);
  try {
    startActivityForResult(Intent.createChooser(intent, "请选择一个要上传的文件"),
        FILE_SELECT_CODE);
  } catch (android.content.ActivityNotFoundException ex) {
    // Potentially direct the user to the Market with a Dialog
    Toast.makeText(getActivity(), "请安装文件管理器", Toast.LENGTH_SHORT)
        .show();
  }
}

在catch,我们可以做更多的操作,比如会跳转到一个下载文件管理器的页面或者等等。

对于返回的数据怎么处理呢。我项目中的上传是如下接收:

/** 根据返回选择的文件,来进行上传操作 **/
  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if (resultCode == Activity.RESULT_OK) {
      // Get the Uri of the selected file
      Uri uri = data.getData();
      String url;
      try {
        url = FFileUtils.getPath(getActivity(), uri);
        Log.i("ht", "url" + url);
        String fileName = url.substring(url.lastIndexOf("/") + 1);
        intent = new Intent(getActivity(), UploadServices.class);
        intent.putExtra("fileName", fileName);
        intent.putExtra("url", url);
        intent.putExtra("type ", "");
        intent.putExtra("fuid", "");
        intent.putExtra("type", ""); 

        getActivity().startService(intent); 

      } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    super.onActivityResult(requestCode, resultCode, data);
  }

   
自制文件浏览器:
这里只加一些简单的图形:

来看代码:

<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>
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;
  } 

} 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 文件
文件浏览器
mui 调用系统 浏览器、ios 调用系统浏览器、安卓调用系统浏览器、app调用系统浏览器、调用系统浏览器,以便于您获取更多的相关知识。

时间: 2024-10-24 07:50:37

Android中调用系统的文件浏览器及自制简单的文件浏览器_Android的相关文章

Android中调用系统所装的软件打开文件

应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下! 这个是打开文件的一个方法:   /** * 打开文件 * @param file */ private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置intent的Action属性 intent.setAction(

Android编程调用系统自带的拍照功能并返回JPG文件示例【附demo源码下载】

本文实例讲述了Android编程调用系统自带的拍照功能返回JPG文件.分享给大家供大家参考,具体如下: package com.eboy.testcamera1; import java.io.File; import java.io.FileOutputStream; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bund

代码-android关于调用系统相机拍照后APP闪退的问题

问题描述 android关于调用系统相机拍照后APP闪退的问题 最近在写一个小APP,就是调用系统相机拍照,然后保存在本地相册,代码没有显示bug,但是在调试时出现了拍照后闪退的问题,我的测试机是小米2S,MIUI 7系统,android5.0.X的,拍照的照片能保存在本地,但是在拍照后点击确定后软件就闪退了,这是我的代码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)

Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法

要原因是主体样式设置的问题:这里把appTheme设置一个style即可: <item name="android:windowBackground">@color/white</item> <!--下面这个属性很重要,有时候会出现某些机型在调用系统相册的时候,短暂的出现手机桌面现象--> <item name="android:windowIsTranslucent">false</item> <i

uri-android 调用系统录音机拿不到返回的录音文件

问题描述 android 调用系统录音机拿不到返回的录音文件 调用代码如下 Intent intent=new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); tmpFileName=storage+getTime()+".mp3"; intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(tmpFileName)));//放入自己的存储路径没有用,为什么照相机和

Android中调用startActivity结果导致:java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}

Android中调用startActivity结果导致:上网查了一下,总结如下: 第一种情况:java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误代码: private int defaultDrawable=R.drawable.radio; private String defaultTitle=getString(R.string.

IOS中调用系统拨打电话与发送短信

IOS中调用系统拨打电话发送短信 一.调用打电话界面 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",_phoneNumber]]]; 二.发送短消息界面 调用系统的发送短信的界面,需要引入以下头文件: #import <MessageUI/MessageUI.h> 系统短信界面的调用很简单,只需下面几句代码: ? 1

android 如何调用系统图库选择图片的时候,可以禁止选择视频

问题描述 android 如何调用系统图库选择图片的时候,可以禁止选择视频 onenote就是这样,选择视频的时候提示抱歉只能选择图片,这样的如何实现? 解决方案 Android4.4系统从图库选择图片android 调用图库并显示选择的图片Android 如何从系统图库中选择图片

Android 实现调用系统照相机拍照和录像的功能_Android

本文实现android系统照相机的调用来拍照 项目的布局相当简单,只有一个Button: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_heig