Java 添加TextView时出现空指针异常
我有一个ScrollView,我试图将TextView添加到其中的LinearLayout中,但我一直收到一个错误Java 添加TextView时出现空指针异常,java,android,Java,Android,我有一个ScrollView,我试图将TextView添加到其中的LinearLayout中,但我一直收到一个错误 TextView l = new TextView(StopWatch.this); l.setText("Didn't work"); l.setTextSize(20); llLocations.addView(l); 我试图使用这段代码来查看我使用的ArrayList是否为空,但事实并非如此。它说错误是由以下位置的NullPointerException引起的 llLoca
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
java:506是
llLocations.addView(l);
线路
我正在尝试在一个警报对话框中执行此操作,该对话框中有一个带有滚动视图的自定义视图。您认为这可能是导致问题的原因吗?通常您必须将
文本视图
绑定到一个id!
就像这样:
example = findViewById(R.id.yourid);
据你所知,R是由android从你的值文件中动态生成的(id主要在布局文件中分配)通常你必须将
文本视图
绑定到一个id!
就像这样:
example = findViewById(R.id.yourid);
就您自己所知,R是由android从您的值文件中动态生成的(ID主要分配在布局文件中)llLocations是空的,所以我猜您是这样做的:
LinearLayout llLocations = (LinearLayout)findViewById(R.id.<here_the_id_of_the_linearleayout_in_your_xml_layout>);
LinearLayout llLocations=(LinearLayout)findViewById(R.id.);
如果您这样做了,并且id是正确的,并且您使用包含linearlayout的布局设置活动的ContentView,那么它应该可以工作。llLocations为空,因此我猜您是这样做的:
LinearLayout llLocations = (LinearLayout)findViewById(R.id.<here_the_id_of_the_linearleayout_in_your_xml_layout>);
LinearLayout llLocations=(LinearLayout)findViewById(R.id.);
如果您这样做了,并且id是正确的,并且您使用包含linearlayout的布局设置了活动的ContentView,那么它应该可以工作。
llLocations
为空。打开findViewById
。结尾。llLocations
为空。打开findViewById
。结束。如果您有一个作为类实例的变量,则需要对其进行初始化。如果您不初始化它,它将有一个空指针
在尝试访问其方法之前,未正确初始化分配。但是你不能访问空指针的方法,对吗?这就像和任何人握手一样。因此,这是一种异常行为,这就是引发NullPointerException的原因。如果您有一个作为类实例的变量,则需要对其进行初始化。如果您不初始化它,它将有一个空指针
在尝试访问其方法之前,未正确初始化分配。但是你不能访问空指针的方法,对吗?这就像和任何人握手一样。因此,这是一个异常行为,这就是引发NullPointerException的原因。好的,(s)他总是可以显示初始化llLocations的其余代码。。。不管怎样,也许Dalvik只是对匈牙利符号llLocations=(LinearLayout)findViewById(R.id.llLocations)过敏;我在onCreate中有这个方法吗?现在你告诉我。要么堆栈跟踪是您的朋友。那么,(s)他总是可以显示初始化llLocations的其余代码。。。不管怎样,也许Dalvik只是对匈牙利符号llLocations=(LinearLayout)findViewById(R.id.llLocations)过敏;我在onCreate中有这个方法吗?现在你告诉我。要么堆栈跟踪是您的朋友。