package com.InfosView;< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />



import java.io.File;

 

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

 

public class FilesSearch extends Activity{

 

private TextView showResult;
private Button searchBtn;
private EditText searchEdit;
private File file;
private String path;
private String info;
private String formInput;

 

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.filesearch);

 

showResult = (TextView) findViewById(R.id.searchUrl);
searchEdit = (EditText) findViewById(R.id.searchEdit);
searchBtn = (Button) findViewById(R.id.searchBtn );
//為搜索按鈕添加點擊事件監聽器

 

//初始化一個File 物件,指定路徑為/sdcard
file = new File( "/sdcard" );

 

info = getString(R.string.info);

 

searchBtn.setOnClickListener(new View.OnClickListener() {

 

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
path="";
showResult.setText("");
//取得輸入框中的要查詢的Key
formInput = searchEdit.getText().toString();
//流覽檔
BrowserFile( file );
}
});

 

}



//流覽檔方法
public void BrowserFile(File file) {
if (formInput.equals("")) {
//如果輸入框沒有輸入點擊搜索按鈕,提示輸入
Toast.makeText(this, getString(R.string.pleaseInput),
Toast.LENGTH_SHORT).show();
} else {
//開始搜索檔
ToSearchFiles(file);
//搜索完畢後,如果搜到結果為空,提示沒有找到
if (showResult.getText().equals("")) {
Toast.makeText(this, getString(R.string.notFond),
Toast.LENGTH_SHORT).show();
}
}
}

 

//開始搜索檔方法
public void ToSearchFiles(File file) {
//定義一個File檔陣列,用來存放 /sdcard 目錄下的檔或資料夾
File[] the_Files = file.listFiles() ;

 

//通過遍歷所有檔和資料夾
for (File tempF : the_Files) {
if (tempF.isDirectory()) {
ToSearchFiles(tempF);
//如果是資料夾的話繼續遍歷搜索
} else

 

{
try {
//是檔,進行比較,如果檔案名稱中包含輸入搜索Key,則返回大於-1的值
if (tempF.getName().indexOf(formInput) > -1) {
//獲取符合條件檔的路徑,進行累加
path += "\n" + tempF.getPath();
//顯示結果的TextView顯示資訊和搜索到的路徑
showResult.setText(info + path);
}
} catch (Exception e) {
// TODO: handle exception
//如果路徑找不到,提示出錯
Toast.makeText(this, getString(R.string.pathError),Toast.LENGTH_SHORT).show();
}
}
}
}
}

 

fileSearch.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1">
<LinearLayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="0.03">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/searchText" android:text="@string/showInput"></TextView>
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="0.57" android:id="@+id/searchEdit">
<requestFocus></requestFocus>
</EditText>
<Button android:id="@+id/searchBtn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/toSearch"></Button>
</LinearLayout>
<TextView android:layout_weight="0.03" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/searchUrl" android:text="@string/info"></TextView>

 

</LinearLayout>



Strings.xml:

 

<string name="showInput"> 輸入關鍵字</string>
<string name="toSearch"> 搜索</string>

 

<string name="info"> 檔路徑:\n</string>
<string name="pleaseInput"> 請輸入關鍵字:</string>
<string name="notFond"> 沒有找到相關檔!! </string>
<string name="pathError"> 讀取路徑出錯!! </string>

 

許可權:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(2) 人氣()