2012-09-07 112 views
0

這裏我想調用sortByDateModified()功能,並在該功能中包含行Arrays.sort(files, filecomparatorByLastModified)。但行Arrays.sort(files, filecomparatorByLastModified)位於另一個功能public void getDir(String dirPath)。我怎樣才能調用另一個函數的一個子功能從功能...從另一個功能調用子功能

public void onClick(View v) { sortByDateModified(); }  

public void getDir(String dirPath) { 
    myPath.setText("Location: " + dirPath); 
    item = new ArrayList<String>(); 
    path = new ArrayList<String>(); 
    File f = new File(dirPath); 
    File[] files = f.listFiles(); 

    if(!dirPath.equals(root)) { 
     item.add(root); 
     path.add(root); 
     item.add("../"); 
     path.add(f.getParent());  
    } 

    Arrays.sort(files, filecomparatorByLastModified); 
    Arrays.sort(files, filecomparator); 

    for(int i=0; i < files.length; i++) { 
     File file = files[i]; 

     if(!file.isHidden() && file.canRead()){ 
      path.add(file.getPath()); 
      if(file.isDirectory()){ 
       item.add(file.getName() + "/"); 
      } 
      else { item.add(file.getName()); } 
     } 
    } 

    ArrayAdapter<String> fileList = new ArrayAdapter<String>(this, R.layout.row, item); 
    setListAdapter(fileList); 
} 
+0

「子功能」?沒有這樣的事情。你再次調用它。 –

回答

0

最終,你將不得不共用這兩個目錄或文件數組變量。

File[] fileList = null; 

public void methodLikeOnCreateOrConstructor(String dirPath) 
{ 
    //needs to be initialized before onClick could be called 
    fileList = getDir(dirPath); 

} 

public void onClick(View v) { 
    Arrays.sort(fileList, filecomparatorByLastModified);  
} 

public void getDir(String dirPath) 
{ 
    //... 
    File f = new File(dirPath); 
    files = f.listFiles(); 

    //... 
} 
+0

它不這樣做,因爲在這個函數中的文件參數是在getDir()函數中初始化的。我試圖在onClick()方法中初始化這些變量,但仍然沒有區別。 – MetaRs