切换按钮setOnClickListener无法解析

时间:2014-09-02 06:41:25

标签: android onclick android-studio listener onclicklistener

我是Android编程的新手,我从开发者网站上了解了如何正确实现这一点。但是,当我将其复制并粘贴到android studio时,它无法解析setOnClickListener,setOnCheckedChangeListener和buttonView。

这是我第一次使用android中的切换按钮和按钮,我在此之前做了很多搜索,然后我才解决这个问题。这是MainInterface之外的一个单独的按钮类,我需要扩展或实现任何特殊的或导入任何东西吗?

 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.view.View;
 import android.widget.CompoundButton;
 import android.widget.ToggleButton;        

 public class Button extends MainInterface {

    ToggleButton toggle = (ToggleButton) findViewById(R.id.BeaconButton);
    toggle.setOnClickListener(new CompoundButton.OnCheckedChangeListener());
    toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                // The toggle is enabled
            } else {
                // The toggle is disabled
            }
        }
    });
}

以上代码和以下代码之间的区别是什么?以下代码是否适用于设置监听器?

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();
    if (on) {
        // do something
        }

    } else {
        // set as it was
    }
}

2 个答案:

答案 0 :(得分:2)

setOnClickListener不接受CompoundButton.OnCheckedChangeListener()作为侦听器,从而给出编译时错误。

setOnClickListener

的方法签名
setOnClickListener(View.OnClickListener l)

<强>溶液

使用默认View.OnClickListener侦听器在ToggleButton

中设置视图
 toggle.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

答案 1 :(得分:0)

使用此方法..

this.someToggleButton = (ToggleButton)findViewById(R.id.someToggleButton) ;

    this.someToggleButton.setOnCheckedChangeListener( new OnCheckedChangeListener() 
    {
        @Override
        public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) 
        {
            doSomethingWith(toggleButton, isChecked) ;
        }
    }) ;