Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 553|回复: 0

开发交流:Android实例:文件搜索

[复制链接]

该用户从未签到

发表于 2011-10-24 10:47:51 | 显示全部楼层 |阅读模式
本例子参考SDK开发范例大全
说明:以ListActitivy显示文件列表,以TextView来显示当前路径,再搭配java.io.File来实现手机版的资源管理器

Java代码


FileSerarchActivity.java





package com.chaowen;



import java.io.File;

import java.util.ArrayList;

import java.util.List;



import android.app.AlertDialog;

import android.app.ListActivity;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TextView;



public class FileSerarchActivity extends ListActivity {

     /**

      * 对象声明

      * items:存放显示的名称

      * paths:存放文件路径

      * rootPath:起始目录

      */

        private List<String> items = null;

        private List<String> paths = null;

        private String rootPath = "/";

        private TextView mPath ;

        

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        mPath = (TextView)findViewById(R.id.mPath);

        getFileDir(rootPath);

    }

   

   

    //取得文件架构的method

    private void getFileDir(String filePath){

            //设置目前所在路径

            mPath.setText(filePath);

            items=new ArrayList<String>();

            paths = new ArrayList<String>();

            File f = new File(filePath);

            File[] files = f.listFiles();

            

            if(!filePath.equals(rootPath)){

                    /*第一条设置为[回到根目录]*/

                    items.add("Back to "+rootPath);

                    paths.add(rootPath);

                    /*第二条设置为[回上层]*/

                    items.add("Back to ..");

                    paths.add(f.getParent());

            }

            

            /*将所有文件添加ArrayList中*/

            for(int i =0;i<files.length;i++){

                    File file  = files;

                    items.add(file.getName());

                    paths.add(file.getPath());

                    

            }

            

            /*声明ArrayAdapter,使用file_row这个Layout,并将Adapter设置给此ListActivity*/

            ArrayAdapter<String> fileList = new ArrayAdapter<String>(this,R.layout.file_row,items);

            

            setListAdapter(fileList);

            

    }

   

   

    //设置ListItem被单击时要做的动作

    @Override

    protected void onListItemClick(ListView l, View v, int position, long id) {

               File file = new File(paths.get(position));

               if(file.isDirectory()){

                       //如果是文件夹就再进一次

                       getFileDir(paths.get(position));

                       

               }else{

                       //如果是文件,则跳出AlertDialog

                       new AlertDialog.Builder(this).setIcon(R.drawable.icon)

                                                    .setTitle("["+file.getName()+"] is File!")

                                                    .setPositiveButton("OK",new DialogInterface.OnClickListener() {

                                                                                                

                                                                                                @Override

                                                                                                public void onClick(DialogInterface dialog, int which) {

                                                                                                        

                                                                                                        

                                                                                                }

                                                                                        }).show();

               }

    }

   

   

}
复制代码



main.xml


Java代码


<?xml version="1.0" encoding="utf-8"?>

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    androidrientation="vertical"

  >

    <TextView

      android:id="@+id/mPath"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:padding="5px"

      android:textSize="18sp"

      android:textColor="@drawable/blue"

    >

    </TextView>

    <ListView

      android:id="@android:id/list"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

   

    >

    </ListView>

  </LinearLayout>
复制代码



file_row.xml
   <?xml version="1.0" encoding="utf-8"?>

Java代码


  <TextView

    android:id="@+id/text1"

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="wrap_content"

    android:layout_height="50px"

    android:textSize="20sp"

  >

  </TextView>

   
复制代码












Ex4_21_FileSearch.zip (48.52 KB, 下载次数: 0)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 07:57 , Processed in 0.378226 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表