当前位置: 代码迷 >> Android >> 【android开发】android资料搜索
  详细解决方案

【android开发】android资料搜索

热度:50   发布时间:2016-05-01 13:48:51.0
【android开发】android文件搜索

目的:输入关键字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下的文件列表

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

效果

?

?

?

  相关解决方案