我已经看到此代码段在解决方案中用于在Android布局上设置背景图片:
因此,在讨论中,提出了一项更改建议:
RelativeLayout fondo_area =
(RelativeLayout)findViewById(R.id.background_areas);
收件人:
RelativeLayout fondo_area =
(RelativeLayout) vArea.findViewById(R.id.background_areas);
这似乎是我需要的解决方案,但是我似乎找不到其他任何有关此修改,其上下文或使用要求的文档或信息。
链接到我在以下位置发现的问题解答:
NullPointerException when draw background RelativeLayout
感谢您的帮助。谢谢。
答案 0 :(得分:0)
这绝对是一个变量。
final View vArea = li_area.inflate(R.layout.areas_detalles_cpa, null);
final
表示该值无法更改。 View
指示变量的类型。 vArea
是变量的名称。那么=右边的所有内容都是一个表达式,其值已分配给vArea
。如果您觉得这样不对,那么我再次鼓励您回去参加一些基本的Java培训,因为您可能第一次错过了一些东西。也许无非就是错误地使用了一些术语。如果有帮助,我已经使用Java进行了大约20年的开发。我说这不是在吹牛或让您失望,只是为了对我的经验水平提出一些看法,并向您保证我来自这个主题的一些知识。
关于您提到的更改可解决问题的原因。我不确定,因为我不知道到底是什么问题,也没有看过所有相关代码,但这是我的猜测。
RelativeLayout fondo_area = (RelativeLayout)findViewById(R.id.background_areas);
这会给您一个错误,指出未定义findViewbyId
(或无法解决,或使用任何措辞)。这是因为该代码来自活动(Activity),该活动已定义了该方法,并且您将其粘贴到了片段(Fragment)中,而片段没有。
RelativeLayout fondo_area = (RelativeLayout) vArea.findViewById(R.id.background_areas);
现在它可以工作了,因为您要在定义该方法的findviewById
上调用View
。这听起来像是一个合理的解释吗?
需要注意的一点是,您可以删除对RelativeLayout的转换。借助不再需要的最新Android更新之一。我可能不确定,这可能是针对Java 7或更高版本的问题。