checkBox.setOnCheckedChangeListener调用崩溃app?

时间:2011-12-24 04:53:08

标签: java android android-sdk-2.3

我有这个简单的代码,但我不知道为什么它会崩溃应用程序。

package com.leonnears.android.andAnother;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;

public class AndAnotherActivity extends Activity
{
    CheckBox dahBox;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        dahBox = (CheckBox)findViewById(R.id.someCheck);
        setContentView(R.layout.main);
        dahBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
        {   
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                if(isChecked)
                {
                    dahBox.setText("This checkbox is: checked");
                }else
                {
                    dahBox.setText("This checkbox is: unchecked");
                }
            }
        });
    }
}

我已经完成了测试并对部分代码进行了评论,看起来调用dahBox.setOnCheckedChangeListener()会导致我的程序崩溃。有一次,我最终做到了这一点:

dahBox.setOnCheckedChangeListener(null);

要查看崩溃是否因某种原因存在,aaand看起来就像是。

有人可以帮我吗?我将非常感激。

1 个答案:

答案 0 :(得分:2)

dahBox = (CheckBox)findViewById(R.id.someCheck);
        setContentView(R.layout.main);

将声明重新排列为

setContentView(R.layout.main);
    dahBox = (CheckBox)findViewById(R.id.someCheck);

您必须首先设置视图然后使用其资源