所以我刚刚定义了一个ToggleButton变量,通过id找到了视图,将激活设置为false,并设置了一个OnClickListener。在onClick方法中,我检查了它是否在if语句中启用。如果它已启用,那么它应该记录它,但我检查了Console和LogCat,它没有显示任何内容。这是我的代码:
tb = (ToggleButton) findViewById(R.id.onoff);
tb.setActivated(false);
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(tb.isEnabled()){
Log.d("", "activated");
}else if(!tb.isEnabled()){
Log.d("", "deactivated");
}
}
});
我不知道如何在文字内部执行代码'事情(比如onClick应该有一个灰色框),所以请不要因此而投票。
答案 0 :(得分:1)
public boolean isEnabled ()
此方法继承自基类视图,该视图主要定义是否是用户难以处理的。
您需要使用 isChecked() 方法来确定ToggleButton是打开还是关闭。
将您的代码更新为:
tb = (ToggleButton) findViewById(R.id.onoff);
tb.setActivated(false);
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((ToggleButton)v).isChecked()){
Log.d("", "activated");
}else{
Log.d("", "deactivated");
}
}
});
或第二种方式
你的xml代码中的
<ToggleButton
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"
android:onClick="onToggleClicked"/>
在您的活动中
public void onToggleClicked(View view) {
// Is the toggle on?
boolean on = ((ToggleButton) view).isChecked();
if (on) {
// Enable vibrate
} else {
// Disable vibrate
}
}