Android getTag=null指针
我一直在为这部分代码获取空指针Android getTag=null指针,android,Android,我一直在为这部分代码获取空指针 private OnClickListener fButton = new OnClickListener() { public void onClick(View v) { Intent myIntent = new Intent(Intent.ACTION_VIEW); int intID = (Integer) v.getTag(); String finalUrl = mInfo.get(in
private OnClickListener fButton = new OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(Intent.ACTION_VIEW);
int intID = (Integer) v.getTag();
String finalUrl = mInfo.get(intID).final_url;
myIntent.setData(Uri.parse(finalUrl));
startActivity(myIntent);
}
};
它用于自动装箱/取消装箱java功能。您要强制转换到对象的对象被访问以检索int值,在本例中,通过
integerInstance.intValue()
。如果忘记设置标记,则返回的值将为null,从而导致NPE
您应该检查空值
int intID = (v.getTag() == null) ? -1 : (Integer) v.getTag();
它用于自动装箱/取消装箱java功能。您要强制转换到对象的对象被访问以检索int值,在本例中,通过
integerInstance.intValue()
。如果忘记设置标记,则返回的值将为null,从而导致NPE
您应该检查空值
int intID = (v.getTag() == null) ? -1 : (Integer) v.getTag();
在获取
yourView.getTag()之前尝试设置yourView.getTag()
在获取yourView.getTag()之前尝试设置yourView.setTag()
是否设置了fButton.setTag(intId)?是否可以添加堆栈跟踪?@GilMoshayof v不能为空,因为是onclick的参数,很抱歉没有弄清楚,吉尔·莫沙霍夫是正确的。确切地说,我从这一行得到了空指针异常:int intID=(Integer)v.getTag();调用getTag之前是否设置了tag?是否设置了fButton.setTag(intId)?是否可以添加stacktrace?@GilMoshayof v不能为空,因为是onClick的参数对不起,不清楚,Gil Moshayof是正确的。确切地说,我从这一行得到了空指针异常:int intID=(Integer)v.getTag();你在呼叫getTag之前设置了标签吗?你是对的,我忘了将标签设置到按钮上。但愿我能有两个正确答案来回答blackbelt和deacoyU是对的,我忘了将标签设置到按钮上。但愿我能对布莱克贝尔和迪科伊有两个正确的答案