Android“切换所有按钮”

时间:2015-04-26 18:21:30

标签: android switch-statement toggle

我正在创建一个可以在开关上切换的应用程序。我总共有4个开关,在底部我希望有一个按钮可以同时切换它们 - 就像一个覆盖开关。我正在尝试使用与创建4个开关时相同的格式,但我无法理解它是如何形成的。我已经尝试通过stackOverFlow查看,但我找不到任何内容,也许我只是不知道关键词。

    Switch toggleapp1 = (Switch) findViewById(R.id.app1);
    toggleapp1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                toggleapp1(true);
                Toast.makeText(getApplicationContext(), "[Application1] Enabled!", Toast.LENGTH_LONG).show();
            } else {
                toggleapp1(false);
                Toast.makeText(getApplicationContext(), "[Application1] Disabled!", Toast.LENGTH_LONG).show();
            }
        }
    });

其中一个开关看起来如何。 toggleapp1与2,3,4切换。

public boolean toggleapp1(boolean status) {
    if (status == true) {
        return true;
    }
    else if (status == false) {
        return false;
    }
    return status;
}

1 个答案:

答案 0 :(得分:1)

  

我总共有4个开关,在底部我希望有一个按钮可以同时切换它们 - 就像覆盖开关一样。

如果我理解了你遇到的问题:

toggleapp1 = (Switch) findViewById(R.id.app1);
toggleapp2 = (Switch) findViewById(R.id.app2);
toggleapp3 = (Switch) findViewById(R.id.app3);
toggleapp4 = (Switch) findViewById(R.id.app4);

你想要禁用所有这些内容。 您可以创建一个执行此操作的方法:

private toggleOffSwitches(boolean state) {
    toggleapp1.setChecked(state);
    toggleapp2.setChecked(state);
    toggleapp3.setChecked(state);
    toggleapp4.setChecked(state);
}

并在按钮的OnClickListener中调用它:

Button yourButton = (Button) findViewById(R.id.yourButton);
yourButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        toggleOffSwitches(false);
    }
});

请记住将Switch声明为字段类变量,以便在toggleOffSwitches方法中使用它们!

<强>更新

例如:

public class MainActivity extends Activity {

    private Switch toggleapp1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ....
        toggleapp1 = (Switch) findViewById(R.id.app1);
        ....

    }