【问题标题】:Android setChecked(true) crash app [closed]Android setChecked(true)崩溃应用程序[关闭]
【发布时间】:2014-05-01 02:25:41
【问题描述】:

我对下面的简单活动有疑问。我有一个全局变量,它定义了我的复选框在这个活动中的状态。如果变量 = 0 则不选中复选框,否则如果变量 = 1 则选中复选框。当我启动活动时,是否应检查复选框状态取决于该全局变量的值。问题出在这里:

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

没有 on.setChecked(true) 一切正常。但是当在活动开始时将复选框设置为 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);

                }

            }
        });



 } 

}

【问题讨论】:

  • 微不足道。 on 从未初始化。 (标记为拼写错误)

标签: android checkbox crash android-activity


【解决方案1】:

需要初始化这个

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

在上面

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

您的视图未初始化,您将标记为checked,因此出现nullpointerexception

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多