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中添加程序中要使用的字符串,具体代码如下所示:
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所示。
图6-8 执行效果 |
图6-9 搜索的信息 |