Android setChecked(true)崩溃应用

时间:2014-04-30 18:02:45

标签: android checkbox crash android-activity

我在下面的简单活动中遇到问题。我有一个全局变量,它定义了此激活中我的复选框的状态。如果variable = 0则不检查复选框,否则如果它= 1则选中复选框。当我启动活动时,应根据该全局变量的值来检查或不检查复选框状态。问题出在这里:

if(o == 1){
       on.setChecked(true);
       czas.setEnabled(true);               
}

没有on.setChecked(true)一切正常。但是,当在活动开始时将checkbox设置为true时,它会使应用程序崩溃。

活动代码:

public class Ustawienia extends Activity {

SeekBar czas;
CheckBox on;
EditText sekundy;

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ustawienia);
        final Globalne globalVariable = (Globalne) getApplicationContext();
        sekundy = (EditText) findViewById(R.id.editText1);
        sekundy.setText("0");
        czas = (SeekBar) findViewById(R.id.seekBar1);
        int o = globalVariable.getOdswiez();            

        if(o == 1){
            on.setChecked(true);
            czas.setEnabled(true);              
        }

        czas.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                sekundy.setText(Integer.toString(progress));

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub

            }
        });
        on = (CheckBox) findViewById(R.id.checkBox1);
        on.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if ( isChecked ){
                    czas.setEnabled(true);
                    globalVariable.setOdswiez(1);
                }else{
                    czas.setEnabled(false);
                    globalVariable.setOdswiez(0);

                }

            }
        });



 } 

}

1 个答案:

答案 0 :(得分:2)

需要初始化

on = (CheckBox) findViewById(R.id.checkBox1);

上面的

if(o == 1){
      on.setChecked(true);
      czas.setEnabled(true);              
}

您的视图未初始化,您将标记为checked,因此发生了nullpointerexception