簡體   English   中英

添加TextView時出現空指針異常

[英]Null pointer exception when adding TextView

我有一個ScrollView,並且嘗試將TextViews添加到其中的LinearLayout中,但是我一直遇到錯誤。

TextView l = new TextView(StopWatch.this);
l.setText("Didn't work");
l.setTextSize(20);
llLocations.addView(l);

我試圖使用此代碼來查看我正在使用的ArrayList是否為空,但這不是。 它說該錯誤是由NullPointerException引起的...

llLocations.addView(l);

我還有其他做相同事情的代碼,我嘗試將它們進行比較,但是沒有區別,所以我很困惑。 我該如何解決?

07-10 21:14:42.687: E/AndroidRuntime(5241): FATAL EXCEPTION: main
07-10 21:14:42.687: E/AndroidRuntime(5241): java.lang.IllegalStateException: Could not execute method of the activity
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.view.View$1.onClick(View.java:3599)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.view.View.performClick(View.java:4204)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.view.View$PerformClick.run(View.java:17355)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.os.Handler.handleCallback(Handler.java:725)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.os.Looper.loop(Looper.java:137)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.app.ActivityThread.main(ActivityThread.java:5041)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at java.lang.reflect.Method.invokeNative(Native Method)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at java.lang.reflect.Method.invoke(Method.java:511)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at dalvik.system.NativeStart.main(Native Method)
07-10 21:14:42.687: E/AndroidRuntime(5241): Caused by: java.lang.reflect.InvocationTargetException
07-10 21:14:42.687: E/AndroidRuntime(5241):     at java.lang.reflect.Method.invokeNative(Native Method)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at java.lang.reflect.Method.invoke(Method.java:511)
07-10 21:14:42.687: E/AndroidRuntime(5241):     at android.view.View$1.onClick(View.java:3594)
07-10 21:14:42.687: E/AndroidRuntime(5241):     ... 11 more
07-10 21:14:42.687: E/AndroidRuntime(5241): Caused by: java.lang.NullPointerException
07-10 21:14:42.687: E/AndroidRuntime(5241):     at com.TBJsoft.runprogress.StopWatch.done(StopWatch.java:506)
07-10 21:14:42.687: E/AndroidRuntime(5241):     ... 14 more

StopWath.java:506是

llLocations.addView(l);

線。

我正在嘗試在具有自定義視圖和滾動視圖的警報對話框中執行此操作。 您認為這可能是造成問題的原因嗎?

llLocations為空。 閱讀 findViewById 結束。

llLocations為null,所以我想您做了類似的事情:

LinearLayout llLocations = (LinearLayout)findViewById(R.id.<here_the_id_of_the_linearleayout_in_your_xml_layout>);

如果您執行了此操作,並且id是正確的ID,並且使用包含linearlayout的這種布局設置了活動的ContentView,那么它應該可以工作。

通常,您必須將TextView綁定到ID! 像那樣:

example = findViewById(R.id.yourid);

據您所知,R是由android在您的值文件中動態生成的(ID通常在布局文件中分配)

如果變量是類的實例,則需要對其進行初始化。 如果不初始化它,它將有一個空指針。

在嘗試訪問其方法之前,未正確初始化llocations。 但是您不能訪問空指針的方法,對嗎? 就像與任何人握手。 因此,這是一種異常行為,這就是拋出NullPointerException的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM