检查 Android 切换按钮的状态。

3

我是一个Android新手,对于开发者网站上的代码并不理解,我只想检查切换按钮的状态是打开还是关闭。我的情况如下:

if (isCheckedToggleButton?)
{
    // do something         
}
else
{
    // do something else
}

并且一种方法作为指南建议
public void onToggleClicked(View view)
{
    boolean on = ((ToggleButton)view).isChecked();

    if(on) {
        return;
    } else {

    }
}

我只是想查看切换按钮的开关状态,以便决定是否执行if或else内的代码。不幸的是,Android指南提供的方法是void类型,因此它无法返回布尔值。那么我该如何检查其状态呢?

        <Switch
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lift"
            android:textOff="Uit"
            android:textOn="Aan"
            android:id="@+id/switchLift" android:layout_below="@id/btnEindpunt"
            android:layout_alignLeft="@+id/btnEindpunt"/>

请查看此处:http://developer.android.com/guide/topics/ui/controls/togglebutton.html - Konrad Krakowiak
1个回答

3

像这样使用

myToggleButton.setOnCheckedChangeListener( new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked)
    {
        if(isChecked)
            // Do something
        else
           // Do the other thing
    }
});

更改

ToggleButton myToggleButton = ((ToggleButton) findViewById(R.id.switchLift));

为了

Switch myToggleButton = ((Switch) findViewById(R.id.switchLift));

同时将isChecked更改为其他名称,例如mIsChecked,或在侦听器中使用YourClassName.this.isChecked来更改其值。已经有一个同名的局部变量。


你的代码第一行出现了空指针异常。在那行代码上面,我有一个CompoundButton myToggleButton = (ToggleButton)findViewById(R.id.switchLift); - Reshad
请确认"switchLift"是否为当前活动布局中ToggleButton的id? - T D Nguyen
代码的第一行来自另一个布局。这是因为我有一个布局,我在其中填写内容,并使用切换按钮决定是否打开或关闭选项,然后提交它,然后我必须检查切换按钮是否被选中。该代码位于活动的onCreate方法内部。 - Reshad
请在您使用我建议的代码的地方添加更多代码。 - Rohit5k2
首先,您发布的xml部分是否在布局文件“mapview”中?其次,您正在使用错误的语句来初始化Switch。请参考我的编辑。 - Rohit5k2
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接