我正在创建一个可以在开关上切换的应用程序。我总共有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;
}
答案 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);
....
}