作者: 梁晓禄

文件搜索功能在操作系统或网页中会经常遇到,他可以快速帮用户找到想要的文件或资料。同样在手机中也能实现文件搜索功能。在android中可以通过Java I/O API中的java.io.File对象,利用File对象方法,再搭配android的EditText、TextView等对象,就可以轻松做出一个手机文件搜索引擎。

下面以一个实例来详细讲解。


编写布局文件main.xml,分别添加两个TextView控件,1个EditText控件和1个Button控件,实现整体布局,具体代码如下。


<?xml version="1.0" encoding="utf-8"?>  <AbsoluteLayout    android:id="@+id/layout1"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@drawable/white"    xmlns:android="http://schemas.android.com/apk/res/android"  >    <EditText      android:id="@+id/mKeyword"      android:layout_width="198px"      android:layout_height="wrap_content"      android:textSize="18sp"      android:layout_x="110px"      android:layout_y="12px"    >    </EditText>    <TextView      android:id="@+id/mText"      android:layout_width="wrap_content"      android:layout_height="31px"      android:textSize="18sp"      android:layout_x="7px"      android:layout_y="25px"      android:text="@string/str_title"      android:textColor="@drawable/black"    >    </TextView>    <Button      android:id="@+id/mButton"      android:layout_width="86px"      android:layout_height="48px"      android:text="@string/str_button"      android:layout_x="100px"      android:layout_y="72px"    >    </Button>    <TextView      android:id="@+id/mResult"      android:layout_width="296px"      android:layout_height="283px"      android:layout_x="10px"      android:layout_y="132px"      android:textColor="@drawable/blue"    >    </TextView>  </AbsoluteLayout>


在strings.xml添加程序中要使用的字符串。


<?xml version="1.0" encoding="utf-8"?>  <resources>    <string name="hello">HI</string>    <string name="app_name">搜索</string>    <string name="str_button">请搜索</string>    <string name="str_title">关键字:</string>  </resources>


编写sousuo.java,实现搜索功能。

1声明对象变量。

2载入main.xmlLayout.

3初始化对象,并为mButton按钮设置响应单击事件onClickListener。

4取得输入的关键字。

5根据搜索文件的方法和关键字搜索。


package irdc.sousuo;import irdc.sousuo.R;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;public class sousuo extends Activity{  /*声明对象变量*/  private Button mButton;  private EditText mKeyword;  private TextView mResult;    /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    /* 载入main.xml Layout */    setContentView(R.layout.main);        /* 初始化对象 */    mKeyword=(EditText)findViewById(R.id.mKeyword);    mButton=(Button)findViewById(R.id.mButton);    mResult=(TextView) findViewById(R.id.mResult);        /* 将mButton添加onClickListener */    mButton.setOnClickListener(new Button.OnClickListener()    {      public void onClick(View v)      {      /*取得输入的关键字*/        String keyword = mKeyword.getText().toString();        if(keyword.equals(""))        {          mResult.setText("请勿输入空白的关键字!!");        }        else        {          mResult.setText(searchFile(keyword));        }      }    });  }    /* 搜索文件的method */  private String searchFile(String keyword)  {    String result="";    File[] files=new File("/").listFiles();    for( File f : files )    {      if(f.getName().indexOf(keyword)>=0)      {        result+=f.getPath()+"\n";      }    }    if(result.equals("")) result="找不到文件!!";    return result;  }}


searchFile(String keyword)方法为了搜索根目录下符合关键字的文件,在搜索文件的过程中,只搜索根目录中的文件,并没有再对子目录下的文件作进一步比较,如果要再强化这个文件搜索功能,让他也能搜索包含子目录下的所有文件,可以在程序中利用File.isDirectory()这个方法来判断其是否为目录。如果是的话,就继续往下一层寻找;不是的话,就终止向下寻找的动作。

运行结果如下:




更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. androidの获取天气预报JSON 实现
  6. Android(安卓)Studio 的四种打包方式
  7. Android(安卓)Studio目录结构详细解答
  8. Android(安卓)SharedPreferences 首次运行引导界面
  9. Android(安卓)ImageView 不显示JPEG图片 及 Android(安卓)Studio

随机推荐

  1. Surface Flinger boot flow in Android(
  2. Android: 利用Bimap,canvas处理图片(画直
  3. android 自定义view 类似loadding从下往
  4. android 监听系统新安装程序的广播
  5. Android(安卓)java.lang.IllegalArgument
  6. Android实现两次按下返回键退出
  7. Android中JSON数据格式的简单使用
  8. Android积木之PopupWindow
  9. Android(安卓)获取手机联系人信息
  10. Android(安卓)TextView 给文本中指定片段