哈哈哈哈,皇天不负苦心人啊,作为一个安卓初学者,经过三天自学,终于写出文件搜索器来了,下一步,我要写一个在安卓上运行的lucene!package android.search;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
// extends Activtiy
//implements OnClickListener 实现click方法
public class AndroidsearchActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
private File file; //文件对象
private String path; //路径
private String info; //目标文件所在路径
private String key; //关键字
private TextView result; // 显示结果
private EditText et; // 编辑view
private Button search_btn; // button view
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //创建程序
setContentView(R.layout.main); //导入main。xml
result = (TextView)findViewById(R.id.TextView_Result); //结果
et = (EditText)findViewById(R.id.key); //关键词
search_btn = (Button)findViewById(R.id.button_search); // 按键
//file = new File(Environment.getExternalStorageDirectory().getPath());
file = new File("/mnt/"); //确定搜索的路径
info = getString(R.string.info); //将String.xml中的“目标文件所在路径”这就话传给info
search_btn.setOnClickListener(this);//设置监听
}
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
public void onClick(View v) { //点击按钮此程序运行
// TODO Auto-generated method stub
path = ""; //path付初值为空
result.setText(""); //将结果显示设为空白
key = et.getText().toString(); //将从文本框中得到的文件名转换为String型
BrowserFile(file); //运行BrowserFile方法
}
/**
* 校验 toast提示
* @param file
*/
public void BrowserFile(File file) { //匹配文件
if (key.equals("")) {//如果关键词为空
Toast.makeText(this, getString(R.string.pleaseInput), Toast.LENGTH_LONG).show();//显示“请输入关键字”
} else {
search(file); //运行search方法
if (result.getText().equals("")) { //如果显示结果为空
Toast.makeText(this, getString(R.string.notFound), Toast.LENGTH_SHORT).show(); //显示“没有搜索到相关文件”
}
}
}
/**
* 遍历 Files
* @param file
*/
private void search(File file)//search方法主要功能是搜索文件(递归)
{
try{
File[] files=file.listFiles();//建立数组
if(files.length>0)//如果文件数组长度大于0
{
for(int j=0;j<files.length;j++)//遍历整个数组
{
if(!files[j].isDirectory())//如果是路径
{
if(files[j].getName().indexOf(key)> -1)//文件名存在
{
path += "\n" + files[j].getPath(); //获取文件的路径
result.setText(info+path);//将文件路径显示在文本框中
}
}
else//否则
{
this.search(files[j]);//继续调用本身
}
}
}
}
catch(Exception e){}
}
}
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/widget0"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_search"
android:layout_x="380px"
android:layout_y="5px"
android:text="@string/toSearch"
/>
<EditText
android:layout_width="256px"
android:layout_height="52px"
android:id="@+id/key"
android:textSize="18sp"
android:layout_x="119px"
android:layout_y="4px"
/>
<TextView
android:layout_width="103px"
android:layout_height="29px"
android:id="@+id/TextView_showIn"
android:layout_x="5px"
android:layout_y="16px"
android:textSize="20sp"
android:text="@string/showInput"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="370px"
android:id="@+id/TextView_Result"
android:layout_x="0px"
android:layout_y="60px"
/>
</AbsoluteLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Activity07!</string>
<string name="app_name">文件搜索</string>
<string name="showInput">输入关键字</string>
<string name="toSearch">搜索</string>
<string name="info">目标文件所在路径:\n</string>
<string name="pleaseInput">请输入关键字!</string>
<string name="notFound">没有搜索到相关文件</string>
<string name="pathError">读取路径出错!!</string>
</resources>
android文件搜索器
最新推荐文章于 2024-04-02 17:54:20 发布