0

デバイス上の特定のファイルを検索するアプリを作成しています。
次のコードを使用しています。
しかし、このアプリケーションを実行すると、nullpointer 例外が発生します。
コードを変更しました..新しいコードは次のとおりです

public class Display extends ListActivity {



 List<String> fileslist;
static String searchtext;
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
}

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

    Bundle bd= getIntent().getExtras();
    searchtext= bd.getString("1");
    fileslist= new ArrayList<String>();
    new Display().listallfiles("/");    
    if(fileslist.isEmpty()){
    Toast.makeText(this, "YO OY", 2200).show(); 
    }
    else{
    ArrayAdapter<String> displaylist = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,fileslist);
    setListAdapter(displaylist);
    }



}

void listallfiles(String path){
    try{


    String  files;
     File  folder = new File (path);
     File [] listOfFiles = folder.listFiles(); 

     for (int i = 0; i < listOfFiles.length; i++) 
     {
         if(listOfFiles[i].canRead()){
      if (listOfFiles[i].isFile()) 
      {
      files = listOfFiles[i].getName();
        if(listOfFiles[i].getName().contains(searchtext))
      fileslist.add(listOfFiles[i].getName());  


        }

     if(listOfFiles[i].isDirectory()) {

        listallfiles(path+"\\"+listOfFiles[i].getName().toString()+"\\");   
    }

     }
     }
    }
    catch (Exception e) 

    {
    e.printStackTrace();    

    }



    }

}

スタック トレース
12-13 19:35:27.072: W/System.err(513): java.lang.NullPointerException 12-13 19:35:27.082: W/System.err(513): com.mypack.filesearch で。 Display.listallfiles(Display.java:56) 12-13 19:35:27.082: W/System.err(513): com.mypack.filesearch.Display.listallfiles(Display.java:70) 12-13 19: 35:27.082: W/System.err(513): com.mypack.filesearch.Display.onCreate(Display.java:35) 12-13 19:35:27.082: W/System.err(513): Android で.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 12-13 19:35:27.082: W/System.err(513): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) で

このコードは正常に実行されています..自分でテストしたい場合。
パッケージcom.mypack;

import java.util.*;
import java.io.*;

public class Main 


 {
List<String> listof;

public static void main(String [] args) 
{

 // Directory path here
  String  path = "d:\\Java\\Programs"; 
  new Main().listallfiles(path);


  }





    void listallfiles(String path){
    try{

listof= new ArrayList<String>();

    String  files;
     File  folder = new File (path);
     File [] listOfFiles = folder.listFiles(); 

     for (int i = 0; i < listOfFiles.length; i++) 
     {

      if (listOfFiles[i].isFile()) 
      {
      files = listOfFiles[i].getName();
   if(listOfFiles[i].getName().contains(".class"))
    listof.add(files);


        }

          else if(listOfFiles[i].isDirectory()) {

        listallfiles(path+"\\"+listOfFiles[i].getName().toString()+"\\");   
    }

     }
    }
    catch (Exception e) 

    {
    e.printStackTrace();    

    }


  for(int i=0;i<listof.size();i++)
  System.out.println(listof.get(i).toString());




    }

    }
4

0 に答える 0