0

我是 android 的菜鸟,当我尝试 settext 或 setcolor 或之前工作的任何东西时,我遇到了一个奇怪的异常

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        pageNoSeek = (SeekBar)findViewById(R.id.pageNoSeekBar);
        pageNotv = (TextView)findViewById(R.id.pageNotv);
        nextButton=(ImageButton)findViewById(R.id.leftButton);
        backButton=(ImageButton)findViewById(R.id.rightButton);
        mainText = (TextView)findViewById(R.id.mainText);
        mainText.setTextColor(Color.RED);
}

如上面的代码所示,没有什么不寻常的..实际上我之前在另一台机器上使用过相同的代码..如果我添加了它,它会在 setTextColor 或 setTextSize 处出错..

> 03-20 07:55:17.552: E/AndroidRuntime(1718): FATAL EXCEPTION: main
03-20 07:55:17.552: E/AndroidRuntime(1718): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thedarkdimension.keyboardShortcut/com.thedarkdimension.keyboardShortcut.StoryViewController}: java.lang.NullPointerException
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.os.Looper.loop(Looper.java:137)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.ActivityThread.main(ActivityThread.java:5041)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at java.lang.reflect.Method.invokeNative(Native Method)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at java.lang.reflect.Method.invoke(Method.java:511)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at dalvik.system.NativeStart.main(Native Method)
03-20 07:55:17.552: E/AndroidRuntime(1718): Caused by: java.lang.NullPointerException
03-20 07:55:17.552: E/AndroidRuntime(1718):     at com.thedarkdimension.keyboardShortcut.StoryViewController.getNextPage(StoryViewController.java:95)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at com.thedarkdimension.keyboardShortcut.StoryViewController.connectToDB(StoryViewController.java:84)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at com.thedarkdimension.keyboardShortcut.StoryViewController.onCreate(StoryViewController.java:47)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.Activity.performCreate(Activity.java:5104)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
03-20 07:55:17.552: E/AndroidRuntime(1718):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
03-20 07:55:17.552: E/AndroidRuntime(1718):     ... 11 more

我无法得到它..任何人都可以帮助:)

4

1 回答 1

4

从您的代码片段onCreate看来,您似乎没有调用setContentView. 出于这个原因,所有的调用都(X)findViewById(R.id.x);返回 null,因此当您尝试对变量进行操作时,您会得到一个空指针异常。[mainText 为空,因为未找到视图]。

解决方案:先 调用setContentView,然后初始化你的变量,然后做剩下的事情

于 2013-03-20T08:06:40.603 回答