Android 검색 SD 카드 파일 개발 예시

우 리 는 안 드 로 이 드 개발 을 할 때 SD 카드 의 내용 을 방문 해 야 하 며 파일 이 많 기 때문에 SD 카드 에서 검색 할 수 있 기 를 바 랍 니 다.이 글 은 SD 카드 의 파일 을 검색 하 는 방법 을 보 여 주 는 안 드 로 이 드 개발 사례 를 보 여 준다.
       인 스 턴 스 인터페이스
       우선 프로그램 이 실 행 된 후의 화면 이 어떤 지 보 여 드 리 겠 습 니 다.

       첫 번 째 EditText 에 검색 할 디 렉 터 리 를 설정 합 니 다.기본 값 은 루트 디 렉 터 리'/'입 니 다.
       두 번 째 EditText 는 검색 할 키 입 니 다.
       레이아웃 레이아웃 
       다음은 layot 의 레이아웃 파일 내용 을 붙 여 줍 니 다.간단 하고 어렵 지 않 습 니 다.

XML/HTML  
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:orientation="vertical" > 
 
  <EditText  
    android:id="@+id/editText2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="/" 
    /> 
    
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp" 
    android:orientation="horizontal" > 
      
    <TextView  
      android:text="      :" 
      android:textSize="20dp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 
    <EditText 
      android:id="@+id/editText1" 
      android:textSize="20dp" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      /> 
  </LinearLayout> 
    
  <Button  
    android:id="@+id/button1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="    " 
    /> 
    
  <TextView  
    android:id="@+id/textView1" 
    android:layout_marginTop="20dp" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    /> 
      
</LinearLayout> 
        검색 기능 의 코드 구현
        마지막 으로 검색 을 어떻게 하 느 냐 가 문제 다.
        자바.io.File 에서 정의 한 File.getName().index Of(keyword)>=0 을 통 해 파일 이 검색 요구 에 부합 되 는 지 판단 합 니 다.
        구체 적 인 실현 은 다음 코드 를 통 해 이 루어 집 니 다.

File[] files = new File(file.getPath()).listFiles();  
      
    for (File f : files)  
    {  
      if (f.getName().indexOf(keyword) >= 0)  
      {  
        res += f.getPath() + "
"; } }
       그 중에서 File[]files=new File(file.getPath()).listFiles();요구 하 는 디 렉 터 리 에 있 는 모든 파일 을 얻 고 for(File f)를 통과 하 는 데 사 용 됩 니 다.  :  files)  모든 서 류 를 두루 훑 어 보다.
       전체 Main.java 코드 는:

package net.javablog.mobile;  
 
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.Button;  
import android.widget.TextView;  
import android.widget.EditText;  
import android.view.View;  
import java.io.File;  
 
public class Main extends Activity {  
    
  private TextView textView1;  
  private EditText editText1;  
  private EditText editText2;  
  private Button button1;  
    
  /** Called when the activity is first created. */ 
  @Override 
  public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  
    
    textView1 = (TextView) findViewById (R.id.textView1);  
    editText1 = (EditText) findViewById (R.id.editText1);  
    editText2 = (EditText) findViewById (R.id.editText2);  
    button1 = (Button) findViewById (R.id.button1);  
      
    button1.setOnClickListener(new Button.OnClickListener()  
    {  
      @Override 
      public void onClick (View view)  
      {  
        String keyword = editText1.getText().toString();  
        File root = new File(editText2.getText().toString());  
          
        if (keyword.equals(""))  
        {  
          String res = "";  
          File[] files = root.listFiles();  
          for(File f : files)  
          {  
            res += f.getPath() + "
"; } textView1.setText(res); return; } else { textView1.setText(findFile(root, keyword)); } return; } }); } private String findFile (File file, String keyword) { String res = ""; if (!file.isDirectory()) { res = " "; return res; } File[] files = new File(file.getPath()).listFiles(); for (File f : files) { if (f.getName().indexOf(keyword) >= 0) { res += f.getPath() + "
"; } } if (res.equals("")) { res = " "; } return res; } }
이상 은 안 드 로 이 드 검색 을 실현 하 는 것 입 니 다. SD 카드 파일 의 실현 은 필요 한 친구 가 볼 수 있 으 니 해당 기능 을 개발 하 는 데 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기