이게 FTP접속해서 리스트 출력하는 건데
 
FTP 접속해서 아이템들을 어댑터에 담는작업을 메인에서 했을때는 오류가 발생하지 않는데
 
아래 첨부된 소스코드에서처럼 스레드로 작업을 하면 널포인터 익센셥이 발생하네욤;;
 
당췌 왜 이런건지 모르겠어서 도움을 요청하고자 합니닷!
 

 

 

 

 

 

 

public class DownloadActivity extends ListActivity{

 private Thread    thread;        //스레드 
 TextView tv;
 String fileName [];
 String Server;
 String ID;
 String PassWord;
 
 
 
 
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.download);
 
     Intent intent=getIntent();   //인텐트를 통해 각각의 값들을 받아옴
    
      String Server   =intent.getStringExtra("data_ServerAddress");  //서버이름
      String ID    =intent.getStringExtra("data_ID");   //ID
      String PassWord  =intent.getStringExtra("data_PassWord"); //패스워드
      String TimeOut    =intent.getStringExtra("data_TimeOut");  //타임아웃
     
      //String []items=new String[10000];
      //ArrayList<String> al = new ArrayList<String>();
      //ArrayList<String> items = new ArrayList<String>();
     
      thread =new Thread(null,doBackgroundProcessing,"Background");//다운로드속도를 측정하는 스레드 설정
      thread.start();//스레드 시작

     
    
 } 
         
        
         
     
      public void onListItemClick(ListView l,View v,int position, long id){
       //tv.setText(items[position]+"클릭됨");
       }
     
     
     
     
   private Runnable doBackgroundProcessing = new Runnable(){//속도측정 스레드
       
       public void run(){//스레드 시작
        
        try{
            
              FTPClient con = new FTPClient();
         
           con.connect("ftp.imrc.kist.re.kr", 21);//서버접속
          
           con.login("gre_kist", "gre1003");
          
           con.enterLocalPassiveMode();     //패시브모드로 전환합니다.
                 con.setFileType(con.BINARY_FILE_TYPE);   //파일형식을 이진파일 형식으로 설정합니다.
                 con.changeWorkingDirectory("/");
          
                 FTPFile[] files=con.listFiles();
               
                
                ArrayList<String> items = new ArrayList<String>();
               
                 for(int i=0; i<files.length; i++){
                  
                                     fileSize=Long.toString(files[i].getSize())+"bytes";
                  
                  
                 
                 
                 items.add(files[i].getName()+fileSize);
                 
                 
                 }
               
                 Log.v("HES", "Settings SUCCESS!!");
                
                
           
          
               
          
          }catch (Exception e) //예외처리
             {
              e.printStackTrace();
             }
          
          ArrayAdapter<String>aa=new ArrayAdapter<String>(DownloadActivity.this,R.layout.downloadrow,R.id.label,items);
          setListAdapter(aa);
          tv=(TextView)findViewById(R.id.selection);
          
          
          }
        
        
       };
   }