2013-06-27 2 views
0

Im пишу приложение, в котором мне нужно перечислить все файлы PDF, имеющиеся в определенном forlder.Заполните Listview с именами файлов

Однако на данный момент я пытаюсь просто перечислить все файлы, присутствующие в необработанной папке, и заполнить ListView.

Это то, что я до сих пор:

Fields[] fields; 
ListView list; 
String[] sample; 
fields=R.raw.class.getFields();int count=0; 
     for(Field f : fields) 
     { 
        sample[count]=f.getName();count++; 
     } 

      list=getListView(); 
      list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
      setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_checked, sample)); 

Однако приложение сохраняет сбой, когда я запустить его. Я наклоняю фигуру, где я иду не так.

Может ли кто-нибудь мне помочь?

журнал:

06-19 08:52:20.352: E/AndroidRuntime(4955): FATAL EXCEPTION: main 
06-19 08:52:20.352: E/AndroidRuntime(4955): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.magazine/com.example.magazine.MainActivity}: java.lang.NullPointerException: storage == null 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.os.Looper.loop(Looper.java:137) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at dalvik.system.NativeStart.main(Native Method) 
06-19 08:52:20.352: E/AndroidRuntime(4955): Caused by: java.lang.NullPointerException: storage == null 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at java.util.Arrays$ArrayList.<init>(Arrays.java:38) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at java.util.Arrays.asList(Arrays.java:154) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at com.example.magazine.MainActivity.onCreate(MainActivity.java:44) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.Activity.performCreate(Activity.java:5104) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
06-19 08:52:20.352: E/AndroidRuntime(4955):  ... 11 more 

ответ

2

Вы должны инициализировать массив строк до:

Field[] fields = R.raw.class.getFields(); 
ListView list; 
String sample[] = new String[R.raw.class.getFields().length]; 
int count=0; 
for(Field f : fields) 
{ 
    sample[count]=f.getName(); 
    count++; 
} 

list=getListView(); 
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
setListAdapter(new ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_checked, sample)); 
+0

ой лол спасибо. Не могу поверить, что я пропустил это. – drarkayl