checkBox.setOnCheckedChangeListener вызывает сбой приложения? - PullRequest
1 голос
/ 24 декабря 2011

У меня есть этот простой код, но я не могу понять, почему он ломает приложение.

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

Чтобы посмотреть, может ли произойти сбой по какой-то причине, аа, похоже, что это было.?Я буду очень признателен за это.

1 Ответ

2 голосов
/ 24 декабря 2011
dahBox = (CheckBox)findViewById(R.id.someCheck);
        setContentView(R.layout.main);

переставить оператор в

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

сначала вам нужно установить представление, а затем использовать его ресурсы

...