0

我刚刚定义了一个 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 应该有一个灰色的框)。

4

1 回答 1

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
}
}
于 2014-06-22T20:28:27.313 回答