当我用ListView设置字符串数组时,我得到一个强制关闭

问题描述:

我正在创建一个列表视图,我希望它显示来自一个字符串数组的东西。这里是我的扫描仪类:当我用ListView设置字符串数组时,我得到一个强制关闭

package com.rezoluz.planesim; 

import java.util.ArrayList; 

public class Scanner { 

    public ArrayList<String> gameList; 
    public String[] gameListFin; 

    public void getFiles() { 
     gameList.add("testo7r"); 
     gameList.add("test5or"); 
     gameList.add("te4stor"); 
     gameList.add("tes3tor"); 
     gameList.add("testo2r"); 
     gameListFin = gameList.toArray(new String[gameList.size()]); 
    } 

} 

这里是我ShortcutListActivty类:

package com.rezoluz.planesim; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class ShortcutListActivity extends Activity { 

    Scanner scanner = new Scanner(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.shortcuts_list); 

     scanner.getFiles(); 
     ListView listView = (ListView)findViewById(R.id.shortcutsList); 
     listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, scanner.gameListFin)); 
    } 

} 

但是当我打开ShortcutsListActivity起来,它强制关闭,这里是logcat的。

04-20 15:29:24.343: D/AndroidRuntime(17039): Shutting down VM 04-20 
15:29:24.343: W/dalvikvm(17039): threadid=1: thread exiting with 
uncaught exception (group=0x4001d7e8) 04-20 15:29:24.478: 
E/AndroidRuntime(17039): FATAL EXCEPTION: main 04-20 15:29:24.478: 
E/AndroidRuntime(17039): java.lang.RuntimeException: Unable to start 
activity 
ComponentInfo{com.rezoluz.planesim/com.rezoluz.planesim.ShortcutListActivity}: 
java.lang.NullPointerException 04-20 15:29:24.478: 
E/AndroidRuntime(17039): at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
android.app.ActivityThread.access$2300(ActivityThread.java:125) 04-20 
15:29:24.478: E/AndroidRuntime(17039):  at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
android.os.Handler.dispatchMessage(Handler.java:99) 04-20 
15:29:24.478: E/AndroidRuntime(17039):  at 
android.os.Looper.loop(Looper.java:123) 04-20 15:29:24.478: 
E/AndroidRuntime(17039): at 
android.app.ActivityThread.main(ActivityThread.java:4627) 04-20 
15:29:24.478: E/AndroidRuntime(17039):  at 
java.lang.reflect.Method.invokeNative(Native Method) 04-20 
15:29:24.478: E/AndroidRuntime(17039):  at 
java.lang.reflect.Method.invoke(Method.java:521) 04-20 15:29:24.478: 
E/AndroidRuntime(17039): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 04-20 
15:29:24.478: E/AndroidRuntime(17039):  at 
dalvik.system.NativeStart.main(Native Method) 04-20 15:29:24.478: 
E/AndroidRuntime(17039): Caused by: java.lang.NullPointerException 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
com.rezoluz.planesim.Scanner.getFiles(Scanner.java:11) 04-20 
15:29:24.478: E/AndroidRuntime(17039):  at 
com.rezoluz.planesim.ShortcutListActivity.onCreate(ShortcutListActivity.java:19) 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-20 15:29:24.478: E/AndroidRuntime(17039): at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
04-20 15:29:24.478: E/AndroidRuntime(17039): ... 11 more 

我可以看到它引用到这一点:gameList.add("testo7r");和这个和这个scanner.getFiles();,但我没有看到这个问题在那里,请大家帮忙!感谢您的时间和帮助,zeokila。

你忘了初始化..所以它必须在一个空指针异常......

public class Scanner { 

    public ArrayList<String> gameList = new ArrayList<String>(); 
    public String[] gameListFin; 

    public void getFiles() { 
     gameList.add("testo7r"); 
     gameList.add("test5or"); 
     gameList.add("te4stor"); 
     gameList.add("tes3tor"); 
     gameList.add("testo2r"); 
     gameListFin = gameList.toArray(new String[gameList.size()]); 
    } 

} 
+0

感谢的人,解决我的问题:d – 2012-04-20 13:39:52

+0

会接受9分钟内回答 – 2012-04-20 13:40:07

+0

@zeokila ..啊..拿你的时间... – ngesh 2012-04-20 13:42:42