目的:输入关键字KEY,sd卡中文件名包含KEY的文件路径显示在屏幕下方,如果没有,则toast提示,整个实现过程还是比较简单的。
思路: EditText -- > button(onClick) --> getText -->ListFiles ? indexof -- > show
main.xml
<?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="253px"
android:layout_y="5px"
android:text="@string/toSearch"
/>
<EditText
android:layout_width="112px"
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>
? Activity类内容
package com.android;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
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 Activity07 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);
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("/sdcard/mp3");
info = getString(R.string.info);
search_btn.setOnClickListener(this);
}
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
path = "";
result.setText("");
key = et.getText().toString();
BrowserFile(file);
}
/**
* 校验 toast提示
* @param file
*/
public void BrowserFile(File file) {
if (key.equals("")) {
Toast.makeText(this, getString(R.string.pleaseInput), Toast.LENGTH_LONG).show();
} else {
toSearchFiles(file);
if (result.getText().equals("")) {
Toast.makeText(this, getString(R.string.notFound), Toast.LENGTH_SHORT).show();
}
}
}
/**
* 遍历 Files
* @param file
*/
public void toSearchFiles(File file) {
File[] files = file.listFiles();
for (File tf : files) {
if (tf.isDirectory()) {
toSearchFiles(tf);
} else {
try {
if (tf.getName().indexOf(key) > -1) {
path += "\n" + tf.getPath();
result.setText(info+path);
}
} catch(Exception e) {
Toast.makeText(this, getString(R.string.pathError), Toast.LENGTH_SHORT).show();
}
}
}
}
}
? String.xml
<?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">系统SDCard目录文件路径:\n</string>
<string name="pleaseInput">请输入关键字!</string>
<string name="notFound">SD卡中没有相关文件!!</string>
<string name="pathError">读取路径出错!!</string>
</resources>
查看SD卡MP3下的文件列表

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
效果

?
?

?
