我为LinearLayout
背景创建了一个Drawable资源文件。我使用
MainActivity
中设置了Drawable
Drawable d = getResources().getDrawable(R.drawable.theme_default_bg);
layoutBackground.setBackground(d);
layoutBackground
是LinearLayout
。但是,当我运行它时,它返回NullPointerException
。我该如何解决这个问题?
修改 我在main.xml文件中设置了xml后台,并且它工作正常。当我尝试从MainActivity.java设置背景时出现此错误
答案 0 :(得分:1)
试试这个......在你的情况下你还没有初始化layoutBackground ..
RelativeLayout layoutBackground =(RelativeLayout)findViewById(R.id.background);
Drawable d = getResources().getDrawable(R.drawable.theme_default_bg);
layoutBackground.setBackgroundResource(d);
答案 1 :(得分:1)
只需使用:
layout.setBackgroundResource(R.drawable.theme_default_bg);
而不是尝试将资源转换为可绘制的。
答案 2 :(得分:0)
我发现了错误。对不起,我尝试setBackground的布局是在另一个布局文件(activity_main.xml)中。所以我使用LayoutInflater
,
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View mainView = inflater.inflate(R.layout.activity_main, null);
layoutBackground = (LinearLayout)mainView.findViewById(R.id.layout_bg);
现在错误已经解决了。我很抱歉,我浪费你的时间。我很抱歉。