我在这里有这段代码

ToggleButton toggleAlarm = (ToggleButton) d.findViewById(R.id.toggle_alarm);
toggleAlarm.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(isChecked)
        {
            Log.d("alarmCheck","ALARM SET TO TRUE");
            sched.setAlarm(true);
        }
        else
        {
            Log.d("alarmCheck","ALARM SET TO FALSE");
            sched.setAlarm(false);
        }
    }
});
我必须跟踪其打开或关闭状态。但是,当我在logcat上打开或关闭的地方记录了一些东西时,它不会做任何事情。我不知道这是什么问题,因为在我的其他代码中,语法相同,但是它可以正常工作,我只是复制粘贴它,而仅更改ToggleButton变量。
编辑
我在cdr的帮助下进行了观察。当然,鲍威尔说,当您将此代码块(我已发布的代码块)放置在另一个匿名监听器中,说是一个保存按钮的监听器时,checkOnChangedListener已损坏,在另一个匿名监听器中它无法正常工作,但是我不明白的是,我的代码中还有一个外部监听器,就像一个用于显示对话框的按钮,而在该对话框内部,有一个添加按钮可打开另一个具有该切换功能的对话框按钮和另一个保存或添加按钮,它会关闭该对话框并返回上一个对话框,然后将显示新添加的记录,所以你们中的每个人都知道我将其放入保存按钮的监听器中时为什么会损坏,但是在外部监听器中工作正常。

最佳答案

试试这个,可能是import的问题

toggleAlarm.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if(isChecked)
    {
        Log.d("alarmCheck","ALARM SET TO TRUE");
        sched.setAlarm(true);
    }
    else
    {
        Log.d("alarmCheck","ALARM SET TO FALSE");
        sched.setAlarm(false);
    }

}
});

关于android - Android:ToggleButton监听器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11776423/

10-15 00:52