通过关键字母快速搜索手机sd卡中的文件,输出的文本可以上下滚动。
要搜索文件首先要更改权限,在manifest.xml中添加:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
JAVA CODE:
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class EX04_11 extends Activity
{
private Button mButton;
private EditText mKeyword;
private TextView mResult;
//private String result="";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mKeyword = (EditText) findViewById(R.id.mKeyword);
mButton = (Button) findViewById(R.id.mButton);
mResult = (TextView) findViewById(R.id.mResult); /* 将mButton加入onClickListener */
mResult.setMovementMethod(ScrollingMovementMethod.getInstance());
mButton.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
/* 取得输入的关键词 */
String keyword = mKeyword.getText().toString().trim();if (keyword.equals(""))
{
mResult.setText("请勿输入空白的关键词!!");
} else
{
mResult.setText(searchFile(keyword));
}
}
});
} /* 搜索文件的method */
private String searchFile(String keyword)
{
String result = "";
File[] files = new File("/sdcard").listFiles();
for (File f : files)
{
if (f.getName().indexOf(keyword.toLowerCase()) >= 0||f.getName().indexOf(keyword.toUpperCase()) >= 0) 大小写输入
{
result += f.getPath() + "\n";
}
}
if (result.equals(""))
result = "找不到文件!!";
return result;
}
}
return result;
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/mText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="@string/str_title"
android:textColor="@drawable/black"
/>
<EditText
android:id="@+id/mKeyword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_below="@+id/mText"
/>
<Button
android:id="@+id/mButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/str_button"
android:layout_below= "@+id/mKeyword"
/>
<TextView
android:id="@+id/mResult"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/blue"
android:layout_below="@+id/mButton"
android:scrollbars="vertical"
android:ellipsize="marquee"
android:maxLines="25"
/>
</RelativeLayout>