6.5 FileSearch文件搜索引擎
《Android江湖》第6章人外有人,山外有山,在本章内容中讲解了Android控件的高级用法。首先讲解了对话框中使用进度条控件的基本知识和使用方法,然后依次介绍了Spinner、setDropDownViewResource、Gallery、AnalogClock和DigitalClock控件的基本用法,最后讲解了BaseAdapter容器的基本知识。本节为大家介绍FileSearch文件搜索引擎。
6.5 FileSearch文件搜索引擎
文件搜索功能在操作系统或网页中会经常遇到,它可以快速帮用户找到想要的文件或资料。同样在手机中也能实现文件搜索功能,在Android中可以通过Java I/O API中的java.io.File对象,利用File对象的方法,再搭配Android的EditText、TextView等对象,就可以轻松做出一个手机的文件搜索引擎。
练习5:在Android中实现文件搜索
源码路径:第6章\search
![]() |
此次练习中准备使用EditText、Button与TextView3种对象来实现文件搜索功能,可以将要搜索的文件名称或关键字输入EditText中,点击Button后,程序会在根目录中寻找符合的文件,并将搜索结果显示于TextView中;如果找不到符合的文件,则显示找不到文件。
第1步:编写布局文件main.xml,分别添加两个TextView、一个EditText和一个Button。
第2步:在strings.xml中添加程序中要使用的字符串,具体代码如下所示:
- xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">长夜string>
- <string name="app_name">慢慢string>
- <string name="str_button">搜索引擎string>
- <string name="str_title">输入关键字,string>
- resources>
第3步:编写文件Search.java,实现搜索功能,其具体实现流程如下:
(1)声明对象变量;
(2)载入main.xml Layout;
(3)初始化对象,并将mButton添加onClickListener;
(4)取得输入的关键字;
(5)根据搜索文件的method和关键字搜索。
文件Search.java的主要实现代码如下所示:
- public class FileSearch 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;
- }
- }
至此,整个练习结束。程序执行后的初始效果如图6-8所示。当输入关键字并单击“搜索引擎”按钮后会检索出对应的信息,如图6-9所示。
![]() |
图6-8 执行效果 |
![]() |
图6-9 搜索的信息 |