我有这个简单的代码,但是我无法弄清楚为什么它会使应用程序崩溃。

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);


要查看坠机是否可能由于某种原因而存在,看起来像是。

有人可以帮我弄这个吗?我将不胜感激。

最佳答案

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


将语句重新排列为

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


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

07-26 09:30