마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

메소드 호출방법...;

0 추천

 TextView text2
 ArrayList<String> fList= new ArrayList<String>();
 ArrayList<String> fileList = new ArrayList<String>();
 String path = Environment.getExternalStorageDirectory().getAbsolutePath();
 
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.magnifymain);
 
     
     text2 = (TextView) findViewById(R.id.text2);
      
      //Log.d("magnifyActivity", "폴더명-->" + path); 
     
      printFileList(); 


 }
 

 public void printFileList() {


  fList.addAll(getFileList(path));
 
  new Thread() {
   @Override
   public void run() {
    Log.e("path", ""+fList.size());
    for(int i=0;i<fList.size();i++) {
  
     text2.setText(fList.get(i).toString());
     Log.e("path", ""+fList.get(i));
     try {
      Thread.sleep(500);
     } catch (Exception e) {
      e.printStackTrace();
     }
     runOnUiThread(new Runnable() {
      @Override
      public void run() {
       text2.setText(fList.toString());
      }
     });
    }
   }
  }.start();
 }
  
 
 
 public ArrayList<String> getFileList(String folder) {
  
  
  File[] files=new File(folder).listFiles();
 
  for(int i=0;i<files.length;i++) 
  {
   if(files[i].isDirectory()){
    fileList.add(files[i].getPath().toString());
   }
   else if(files[i].isFile()){
    fileList.add(files[i].getPath().toString());
   }
  }
  return fileList;
 }


 메소드를 호출하기 위해서 oncreate 안에 printFileList(); 를 썻는데..

이 부분에서 강제종료가 되네요..

로그캣도 올립니다...



04-28 20:51:38.501: E/AndroidRuntime(25274):  at dalvik.system.NativeStart.main(Native Method)
04-28 20:51:38.501: E/AndroidRuntime(25274): Caused by: java.lang.NullPointerException
04-28 20:51:38.501: E/AndroidRuntime(25274):  at com.andro.magnifyActivity.getFileList(magnifyActivity.java:165)
04-28 20:51:38.501: E/AndroidRuntime(25274):  at com.andro.magnifyActivity.printFileList(magnifyActivity.java:132)
04-28 20:51:38.501: E/AndroidRuntime(25274):  at com.andro.magnifyActivity.onCreate(magnifyActivity.java:48)
04-28 20:51:38.501: E/AndroidRuntime(25274):  at android.app.Activity.performCreate(Activity.java:5451)
04-28 20:51:38.501: E/AndroidRuntime(25274):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
04-28 20:51:38.501: E/AndroidRuntime(25274):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)




165 :    for(int i=0;i<files.length;i++) 

132 :    fList.addAll(getFileList(path));

48 :      printFileList(); 


문제가 뭔가요..?

 

헬프미 (5,430 포인트) 님이 2015년 4월 28일 질문

1개의 답변

+1 추천
 
채택된 답변
네이버 지식in에다가 답글 달았는데 아오

제발 path에 값이 제대로 들어가는지 확인해보세요.
Djleeee (13,180 포인트) 님이 2015년 4월 28일 답변
헬프미님이 2015년 4월 28일 채택됨
System.out.println(" path : " + path);라고
text2 = (TextView) findViewById(R.id.text2); 밑에 추가하시고
Logcat에서 path : 어쩌구저쩌구 나오는거 확인해보세요.

아마 path : null이 나오지 않을까 싶네요.
04-28 22:32:31.595: I/System.out(16782):  path : /storage/emulated/0

0이 들어가나보네요...;; 하하

어디가 문젤까요...
저 0이 들어가는게 맞는겁니다.
핸드폰 기본 내장폴더 이름이예요
...