android.widget.Switch切换事件监听器?

时间:2014-01-09 03:04:07

标签: android adt

我在android-widget-switch-on-off-event-listener的答案中尝试了代码,但该帖子没有说明我尝试使用它的错误。

在建议代码的第二行:

    switch1 = (Switch) findViewById(R.id.switch1);

    switch1.setOnCheckedChangeListener(new OnCheckedChangedListener() { //This line has the error
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            aTextView.setText("Switch was toggled");
        }
    });

此错误触发

  

CompoundButton类型中的方法setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener)不适用于参数(new OnCheckedChangedListener(){})

我该如何解决这个问题?我想要做的就是在开关改变时调用一个函数 - 而不是单击它时。感谢。

2 个答案:

答案 0 :(得分:6)

将监听器设置为 this ,因为您的类实现了复合按钮,就像这样......

switch1.setOnCheckedChangeListener(this);

然后在您的代码中添加此方法...

    @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            boolean = isChecked;
            //whatever you want
        }

编辑:如果你没有实现 CompoundButton.OnCheckedChangedListener ,请使用此...

switch.setOnCheckedChangeListener(new OnCheckedChangeListener(

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                // TODO Auto-generated method stub

            }

        });

答案 1 :(得分:0)

您好,请查看http://custom-android-dn.blogspot.in/2013/01/how-to-use-and-custom-switch-in-android.html

我们可以用给定的方式做到这一点

 switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
                if (buttonView.isChecked()){
                                               //do something   }
                else{
                    //do something 
                }
            }
    });