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入门到精通教程
查看: 593|回复: 0

Android 基础编程之九(文件搜索引擎 FileSearch)-  Android

[复制链接]

该用户从未签到

发表于 2011-10-24 14:52:47 | 显示全部楼层 |阅读模式
文件搜索引擎 FileSearch
SDCard 中文件搜索与 File 类


①创建新工程
②在 string.xml 添加程序中要使用的字符串
<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">myFileTest</string>

<string name="showInput">输入关键字</string>

<string name="toSearch">搜索</string>

<string name="info">系统SDCard目录文件路径:\n</string>

<string name="pleaseInput">请输入关键字!!</string>

<string name="notFond">没有找到相关文件!!</string>

<string name="pathError">读取路径出错!!</string>

</resources>
复制代码
③修改 main.xml 布局,添加两个 TextView、一个 EditText、一个 Button
<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

android:id="@+id/widget0"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

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

>

<Button

android:id="@+id/Button_Search"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="253px"

android:layout_y="5px"

android:text="@string/toSearch">

</Button>

<EditText

android:id="@+id/input_KEY_EditText"

android:layout_width="112px"

android:layout_height="52px"

android:textSize="18sp"

android:layout_x="119px"

android:layout_y="4px"

>

</EditText>



<TextView

android:id="@+id/TextView_showIn"

android:layout_width="103px"

android:layout_height="29px"

android:textSize="20sp"

android:layout_x="5px"

android:layout_y="16px"

android:text="@string/showInput">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="370px"

android:layout_x="0px"

android:layout_y="60px"

android:id="@+id/TextView_Result">

</TextView>

</AbsoluteLayout>
复制代码
④修改 mainActivity.java 文件,添加搜索功能
package zyf.myFileTest;

/*导入程序使用的包*/

import java.io.File;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class myFileTest extends Activity implements Button.OnClickListener {

/** Called when the activity is first created. */

/*定义程序要使用的类对象*/

private File file;

private String path;

private String info;

private String theKey_formInput;

private TextView show_Result;

private EditText input_SearchKey_Edit;

private Button toSearch_Button;





@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);



/*设置主屏布局为main.xml*/

setContentView(R.layout.main);

/*通过findViewById()获取XML中的UI对象*/

show_Result = (TextView) findViewById(R.id.TextView_Result);

input_SearchKey_Edit = (EditText) findViewById(R.id.input_KEY_EditText);

toSearch_Button = (Button) findViewById(R.id.Button_Search);

/*为搜索按钮添加点击事件监听器*/

toSearch_Button.setOnClickListener(this);

/*初始化一个Field 对象,指定路径为/sdcard*/

file = new File("/sdcard");

/*从xml中获取字符串*/

info = getString(R.string.info);

}

/*按钮点击事件处理*/

public void onClick(View v) {

// TODO Auto-generated method stub

/*清空*/

path = "";

show_Result.setText("");

/*取得输入框中的要查询的Key*/

theKey_formInput = input_SearchKey_Edit.getText().toString();

/*浏览文件*/

BrowserFile(file);

}

/*浏览文件方法*/

public void BrowserFile(File file) {

if (theKey_formInput.equals("")) {

/*如果输入框没有输入点击搜索按钮,提示输入*/

Toast.makeText(this, getString(R.string.pleaseInput),

Toast.LENGTH_SHORT).show();

} else {

/*开始搜索文件*/

ToSearchFiles(file);

/*搜索完毕后,如果搜到结果为空,提示没有找到*/

if (show_Result.getText().equals("")) {

Toast.makeText(this, getString(R.string.notFond),

Toast.LENGTH_SHORT).show();

}

}

}

/*开始搜索文件方法*/

public void ToSearchFiles(File file) {

/*定义一个File文件数组,用来存放/sdcard目录下的文件或文件夹*/

File[] the_Files = file.listFiles();



/*通过遍历所有文件和文件夹*/

for (File tempF : the_Files) {

if (tempF.isDirectory()) {

ToSearchFiles(tempF);

/*如果是文件夹的话继续遍历搜索*/

} else {

try {

/*是文件,进行比较,如果文件名称中包含输入搜索Key,则返回大于-1的值*/

if (tempF.getName().indexOf(theKey_formInput) > -1) {

/*获取符合条件文件的路径,进行累加*/

path += "\n" + tempF.getPath();

/*显示结果的TextView显示信息和搜索到的路径*/

show_Result.setText(info + path);

}

} catch (Exception e) {

// TODO: handle exception

/*如果路径找不到,提示出错*/

Toast.makeText(this, getString(R.string.pathError),

Toast.LENGTH_SHORT).show();

}

}

}

}

}
复制代码

结果:
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 11:51 , Processed in 0.315525 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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