Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android getTag=null指针_Android - Fatal编程技术网

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是对的,我忘了将标签设置到按钮上。但愿我能对布莱克贝尔和迪科伊有两个正确的答案