2012-02-06 3 views
2

Я строю жесты из файлов в каталоге и пытаюсь сохранить их в gesturelibary. Я не могу сделать это правильно, пожалуйста, помогитеПроблемы при попытке сохранить жесты в 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(); 

} может кто-нибудь сказать, где это ошибка с моей LogCat я не могу понять.

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) 

}

ответ

1

Я думаю, ваша проблема здесь:

gest=dotask.batchprocess(b); 

поэтому этот код:

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

никогда не вызывается и размер списка все времена 0.

+0

Bump, "java.lang.IndexOutOfBoundsException: неверный индекс 0, размер 0 " –