2012-02-06 3 views
2

Je crée des gestes à partir de fichiers dans un répertoire et j'essaie de les enregistrer dans un fichier gesturel. Je suis incapable de le faire correctement s'il vous plaît aiderProblèmes lors de la tentative d'enregistrement des gestes dans GestureLibrary

class B implements Runnable 
     { 
      File main; 
      B(File temp) 
      { 
       main=temp; 
      } 
      public void savegesture() 
       { 
        final GestureLibrary store=sStore; 
        for(int i=0;i<list.size();i++) 
        { 
         try{ 
         String name="0"+i; 
         store.addGesture(name, list.get(i)); 
         store.save(); 
         }catch(Exception e) 
         { 
          System.out.println("error"); 
         } 
        } 
       } 

      public void run() 
      { 

       File[] newfiles=main.listFiles(); 
       File[] temp=null; 
       int progress=0; 
       float dircnt=0; 

       int numberoffiles=newfiles.length; 
       for(File b:newfiles) 
       { 
        try{ 
         Gesture gest; 

          gest=dotask.batchprocess(b); 
         if(gest!=null) 
         { 
          System.out.println("success"); 
          list.add(gest); 
         } 

        }catch(Exception e) 
        { 
         System.out.println("error saving file"); 
        } 



         savegesture(); 



       } 
      } 
     } 
     public void addgestures() 
     { 
      cView.postInvalidate(); 
      dotask.setH(cView.getH()); 
      dotask.setW(cView.getW()); 

      count=0; 
      B b=new B(dir); 

      Thread t=new Thread(b); 
      t.start(); 

} peut-on dire où est l'erreur de mon LogCat je ne peux pas le comprendre.

02-06 20:25:18.269: E/AndroidRuntime(31886): FATAL EXCEPTION: Thread-11 
02-06 20:25:18.269: E/AndroidRuntime(31886): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 
02-06 20:25:18.269: E/AndroidRuntime(31886): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at java.util.ArrayList.get(ArrayList.java:311) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at android.gesture.Instance.temporalSampler(Instance.java:91) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at android.gesture.Instance.createInstance(Instance.java:76) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at android.gesture.GestureStore.addGesture(GestureStore.java:158) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at android.gesture.GestureLibrary.addGesture(GestureLibrary.java:68) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at com.android.pack.TestActivity$B.savegesture(TestActivity.java:83) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at com.android.pack.TestActivity$B.run(TestActivity.java:117) 
02-06 20:25:18.269: E/AndroidRuntime(31886): at java.lang.Thread.run(Thread.java:1019) 

}

Répondre

1

Je pense que votre problème est ici:

gest=dotask.batchprocess(b); 

donc ce code:

if(gest!=null) 
        { 
         System.out.println("success"); 
         list.add(gest); 
        } 

est jamais appelé et la taille de la liste tous les temps est 0.

+0

Bump, "java.lang.IndexOutOfBoundsException: index non valide 0, la taille est 0 " –

Questions connexes