Интерфейс пользователя NullPointerException - PullRequest
0 голосов
/ 25 июля 2011

У меня проблемы с пользовательским интерфейсом для Писания, который я написал. По сути, это текстовое представление с ToggleButton внизу экрана, текст TextView обновляется каждые X секунд, пока кнопка включена. Я получаю NullPointerException в моем onCreate, я думаю, что ресурсы пользовательского интерфейса равны нулю? Я никогда не кодировал пользовательский интерфейс для Android, поэтому я очень смущен, но думаю, что большинство из них правильные.

Исключение:

W/dalvikvm(  486): threadid=1: thread exiting with uncaught exception (group=0x400207e8)
E/AndroidRuntime(  486): FATAL EXCEPTION: main
E/AndroidRuntime(  486): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.miccbull.locator.app/com.miccbull.locator.app.LocatorActivity}: java.lang.NullPointerException
E/AndroidRuntime(  486):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime(  486):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(  486):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime(  486):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime(  486):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  486):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  486):    at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(  486):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  486):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  486):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(  486):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(  486):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(  486): Caused by: java.lang.NullPointerException
E/AndroidRuntime(  486):    at com.miccbull.locator.app.LocatorActivity.onCreate(LocatorActivity.java:53)
E/AndroidRuntime(  486):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(  486):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
E/AndroidRuntime(  486):    ... 11 more

Вот метод onCreate моей активности:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    locations = new LinkedList<String>();

    //---ToggleButton---
    textView = (TextView) findViewById(R.id.textView1);

    textView.setText("");

    //---ToggleButton---
    toggleButton = (ToggleButton) findViewById(R.id.toggleButton1);
    toggleButton.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) {
           if (((ToggleButton)v).isChecked())
                LocateOn();
           else
               LocateOff();
        }
    });

    setContentView(R.layout.main);
}

Вот мой файл main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:weightSum="1"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <ScrollView android:layout_width="fill_parent"
        android:id="@+id/widget54"
        android:layout_height="376dp">
        <TextView android:layout_width="fill_parent"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="TextView"
            android:id="@+id/textView1"
            android:layout_height="match_parent"></TextView>
    </ScrollView>


<!-- Linear view instead of scroll view. -->

    <LinearLayout android:layout_width="match_parent"
        android:id="@+id/linearLayout1"
        android:orientation="vertical"
        android:layout_height="378dp">
        <TextView android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="TextView"
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></TextView>
    </LinearLayout> 

    <ToggleButton android:text="ToggleButton"
        android:layout_width="fill_parent"
        android:id="@+id/toggleButton1"
        android:layout_height="wrap_content"></ToggleButton>

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout2"
        android:orientation="vertical">
    </LinearLayout> 

</LinearLayout>

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Вам нужно вызвать setContentView (R.layout.main);прежде чем пытаться получить доступ к любому из элементов в XML макета с помощью метода findViewById ().

0 голосов
/ 25 июля 2011

Эта строка com.miccbull.locator.app.LocatorActivity.onCreate(LocatorActivity.java:53) указывает, какая строка исходного файла вызывает ошибку.Можете ли вы сказать нам, что код в строке 53 в LocatorActivity.java?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...