1. AlexRock, 04.09.2011 #1
    AlexRock

    AlexRock Threadstarter Junior Mitglied

    Hallo,
    ich möchte die Größe von installierten Apps Vergleichen und ordnen lassen.


    Bisher habe ich folgenden Ansatz, hat jemand eine Idee, was ich falsch gemacht habe?

    Ich müsste es in einen String konvertieren und dann vergleichen.

    Also:
    Code:
    long byteSize = new File(sourceDir).length();
    mit folgendem tauschen:

    Code:
    long Size = new File(sourceDir).length(); 
    byteSize = Long.toString(Size);
    

    App.java

    Code:
    
    public long getBytes() throws NameNotFoundException {
    
    		Context context = MainActivity.getAppContext();
    
    		PackageManager packageManager = context.getPackageManager();
    
    		ApplicationInfo applicationInfo = packageManager.getApplicationInfo(
    
    				this.getPackageName(), 0);
    
    		String sourceDir = applicationInfo.sourceDir;
    
    		long byteSize = new File(sourceDir).length();
    
    		return byteSize;
    
    	}
    
    




    AppBySizeComparator.java

    Code:
    
    
    
    import java.util.Comparator;
    
    import android.content.pm.PackageManager.NameNotFoundException;
    
    
    
    public class AppBySizeComparator implements Comparator<App>
    
    {
    
    	int size;
    
        public int compare(App o1, App o2) {
    
            try {
    
            	size = o1.getBytes().compareTo(o2.getBytes());
    
    		} catch (NameNotFoundException e) {
    
    			// TODO Auto-generated catch block
    
    			e.printStackTrace();
    
    		}
    
    		return size;
    
        }
    
    }
    
    
     
  2. Tom299, 05.09.2011 #2
    Tom299

    Tom299 Android-Experte

    also wenn du long benutzt, dann mußt du den vergleich selbst machen, ist ja ein einfacher datentyp.

    oder du nimmst ein Long-Objekt, dann kannst du darauf auch compareTo aufrufen.