尝试调用虚拟方法';int java.lang.Integer.intValue()';关于空对象引用
我有我添加到线性布局中的动态视图,在此之后,我得到了我添加到线性布局中的子视图,并为它们设置了标记,以在单击时标识每个动态布局。当我单击动态布局以替换片段以查看单击视图的详细信息时,我遇到了此错误尝试调用虚拟方法';int java.lang.Integer.intValue()';关于空对象引用,java,android,nullpointerexception,Java,Android,Nullpointerexception,我有我添加到线性布局中的动态视图,在此之后,我得到了我添加到线性布局中的子视图,并为它们设置了标记,以在单击时标识每个动态布局。当我单击动态布局以替换片段以查看单击视图的详细信息时,我遇到了此错误 Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference 以下是我正在做的: for(int i = 0; i < leafletList.getChildCou
Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
以下是我正在做的:
for(int i = 0; i < leafletList.getChildCount(); i++){
leafletList.getChildAt(i).setTag(i);
}
其中(Integer)view.getTag()
为空,为什么为空?不管怎样,我正在为每一个设置标签
编辑:
这就是我在xml中定义的线性布局中添加动态视图的方式
String[] disease = {"Colds","Cough"};
for(int i = 0; i < disease.length ; i++){
DrReportLeafletLayout leaflet = new DrReportLeafletLayout(getActivity(), disease[i], this, disease);
leafletList.addView(leaflet);
}
当你想在视图中添加标记时,应该将其设置在创建视图的位置,这是一条规则@ArashHatami,但为什么会避免相同的空指针异常?你能添加一些代码以更好地可视化吗?你的视图类型是什么?您可以定义一个
TextView
的可见性,并在此处放置/获取标记@blackHawk动态视图本身是相对布局,因此您可以定义一个简单的TextView
并在此处为每个@blackHawk设置标记
String[] disease = {"Colds","Cough"};
for(int i = 0; i < disease.length ; i++){
DrReportLeafletLayout leaflet = new DrReportLeafletLayout(getActivity(), disease[i], this, disease);
leafletList.addView(leaflet);
}
FATAL EXCEPTION: main
Process: com.myhealthathand.hah.dev, PID: 25104
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
at com.myhealthathand.hah.customviews.DrReportLeafletLayout$1.onClick(DrReportLeafletLayout.java:55)
at android.view.View.performClick(View.java:5207)
at android.view.View$PerformClick.run(View.java:21168)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5491)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)