Android布局背景颜色更改导致运行时异常

时间:2014-04-11 09:11:24

标签: android runtimeexception

当我尝试更改背景颜色时:

RelativeLayout rl;
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondo);
    rl=(RelativeLayout)findViewById(R.layout.secondo);
    rl.setBackgroundColor(Color.argb(250, 250, 32, 32));
}

我得到了一个讨厌的RuntimeException。你知道吗,为什么会这样?

logcat的

java.lang.RuntimeException: Unable to start activity ComponentInfo: (...) 
java.lang.NullPointerException

3 个答案:

答案 0 :(得分:3)

  

java.lang.RuntimeException:无法启动活动ComponentInfo:   (...)java.lang.NullPointerException

NullPointerException是因为rl为空

 rl=(RelativeLayout)findViewById(R.layout.secondo);

应该是

 rl=(RelativeLayout)findViewById(R.id.rl);
 // reference the id that you mentioned in secondo.xml
  

但它不存在

所以你没有相对于RelativeLayout的id

将ID添加到secondo.xml

中的相对布局
 <RelativeLayout
 android:id="@+id/rl"

答案 1 :(得分:0)

只需检查setContentView(R.layout.secondo);中的主要xml名称和rl=(RelativeLayout)findViewById(R.layout.secondo);中的relativeLayout名称

secondo是相同的,应该是不同的。

答案 2 :(得分:0)

哦,你应该抓住布局的ID而不是布局&gt;&gt; :: RelativeLayout rl = findViewById(R.id.yourid); 你为布局

我认为它会完成:)