0

我有一个 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);

线。

我正在尝试在具有自定义视图的警报对话框中执行此操作,其中包含滚动视图。您认为这可能导致问题吗?

4

4 回答 4

2

llLocations一片空白。继续阅读findViewById。结束。

于 2013-07-10T23:39:46.440 回答
1

llLocations 是 null ,所以我猜你做了这样的事情:

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

如果您这样做了,并且 id 是正确的,并且您使用包含线性布局的此布局设置了活动的内容视图,那么它应该可以工作。

于 2013-07-10T23:35:05.670 回答
0

通常你必须绑定TextView到一个id!像那样:

example = findViewById(R.id.yourid);

据您所知,R 是由 android 从您的值文件中动态生成的(ID 主要在布局文件中分配)

于 2013-07-10T23:32:32.063 回答
0

如果您有一个变量是类的实例,则需要对其进行初始化。如果你不初始化它,它将有一个空指针。

在您尝试访问其方法之前,lolocations 未正确初始化。但是你不能访问空指针的方法,对吧?这就像与任何人握手一样。因此,这是一种异常行为,这就是引发 NullPointerException 的原因。

于 2013-07-10T23:58:08.903 回答