我是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
}
}
答案 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) ;
}
}) ;