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

android 快速搜索 android快速搜索文件引擎_button

 


此次练习中准备使用EditText、Button与TextView3种对象来实现文件搜索功能,可以将要搜索的文件名称或关键字输入EditText中,点击Button后,程序会在根目录中寻找符合的文件,并将搜索结果显示于TextView中;如果找不到符合的文件,则显示找不到文件。

第1步:编写布局文件main.xml,分别添加两个TextView、一个EditText和一个Button。

第2步:在strings.xml中添加程序中要使用的字符串,具体代码如下所示:

1. xml version="1.0" encoding="utf-8"?> 
2. <resources> 
3. <string name="hello">长夜string> 
4. <string name="app_name">慢慢string> 
5. <string name="str_button">搜索引擎string> 
6. <string name="str_title">输入关键字,string> 
7. resources>



第3步:编写文件Search.java,实现搜索功能,其具体实现流程如下:

(1)声明对象变量;

(2)载入main.xml Layout;

(3)初始化对象,并将mButton添加onClickListener;

(4)取得输入的关键字;

(5)根据搜索文件的method和关键字搜索。

文件Search.java的主要实现代码如下所示:

1. public class FileSearch extends Activity  
2. {  
3. /*声明对象变量*/  
4. private Button mButton;  
5. private EditText mKeyword;  
6. private TextView mResult;  
7. /** Called when the activity is first created. */  
8. @Override  
9. public void onCreate(Bundle savedInstanceState)  
10. {  
11. super.onCreate(savedInstanceState);  
12. /* 载入main.xml Layout */  
13. setContentView(R.layout.main);  
14. /* 初始化对象 */  
15. mKeyword=(EditText)findViewById(R.id.mKeyword);  
16. mButton=(Button)findViewById(R.id.mButton);  
17. mResult=(TextView) findViewById(R.id.mResult);  
18. /* 将mButton添加onClickListener */  
19. mButton.setOnClickListener(new Button.OnClickListener()  
20. {  
21. public void onClick(View v)  
22. {  
23. /*取得输入的关键字*/  
24. String keyword = mKeyword.getText().toString();  
25. if(keyword.equals(""))  
26. {  
27. mResult.setText("输入为空!!");  
28. }  
29. else  
30. {  
31. mResult.setText(searchFile(keyword));  
32. }  
33. }  
34. });  
35. }  
36. /* 搜索文件的method */  
37. private String searchFile(String keyword)  
38. {  
39. String result="";  
40. File[] files=new File("/").listFiles();  
41. for( File f : files )  
42. {  
43. if(f.getName().indexOf(keyword)>=0)  
44. {  
45. result+=f.getPath()+"\n";  
46. }  
47. }  
48. if(result.equals("")) result="搜索不到这个文件!!";  
49. return result;  
50. }  
51. }


至此,整个练习结束。程序执行后的初始效果如图6-8所示。当输入关键字并单击“搜索引擎”按钮后会检索出对应的信息,如图6-9所示。


android 快速搜索 android快速搜索文件引擎_搜索引擎_02

 


图6-8 执行效果

android 快速搜索 android快速搜索文件引擎_android_03

 


图6-9 搜索的信息