执行if语句时的Java.lang.NullPointerException
我试图使用if语句来执行if语句时的Java.lang.NullPointerException,java,android,Java,Android,我试图使用if语句来HashMap,但当我试图在设备上运行它时,它崩溃了 这是我的密码 ImageView promoIcon = (ImageView) findViewById(R.id.icon_promo); DatabaseHandler db = new DatabaseHandler(this); List <AllItem> allItems = new ArrayList<AllItem>(); allItems =
HashMap
,但当我试图在设备上运行它时,它崩溃了
这是我的密码
ImageView promoIcon = (ImageView) findViewById(R.id.icon_promo);
DatabaseHandler db = new DatabaseHandler(this);
List <AllItem> allItems = new ArrayList<AllItem>();
allItems = db.getAllAccommodations();
for(AllItem cn : allItems) {
String promotion = cn.getPromotion();
if (promotion.equals("1"))
{
promoIcon.setVisibility(View.VISIBLE);
}
HashMap<String, String> all_Items = new HashMap<String, String>();
all_Items.put(TAG_PROMOTION,promotion);
accommodationlist.add(all_Items);
}
我真的不知道为什么会出错。有人能帮我修一下吗?根据您对问题的评论,下面的一行返回
null
:
ImageView promoIcon = (ImageView) findViewById(R.id.icon_promo);
这意味着findViewById
没有找到您要查找的视图,因此尝试访问此行中的对象
promoIcon.setVisibility(View.VISIBLE);
失败,因为
promoIcon==null
,并且您不能在null
上调用任何方法。这正是异常消息所说的:您试图使用的一个对象变量没有初始化。你的工作是通过调试找出哪个:-)在住宿类的296行上有什么?它停在哪一行?你正在使用的对象之一是null
。您是否调试以查看错误发生的位置?若否,原因为何?您引用的哪一行是第296行?在IDE中快速旋转,打开行号并在第296行添加断点,将对此进行排序。第296行是此代码promoIcon.setVisibility(View.VISIBLE)代码>
promoIcon.setVisibility(View.VISIBLE);