![](/img/trans.png)
[英]Android toggle button just working once. How can i make it work every time?
[英]how to allow only 1 android toggle button out of 3 to be on at once
我正在使用 3 個切換按鈕。 在我的 android 應用程序中,我希望一次只能選擇其中一個切換按鈕。 我將如何 go 這樣做?
一個簡單的 onChangeListener 就可以了:
public class TestProjectActivity extends Activity {
ToggleButton one;
ToggleButton two;
ToggleButton three;
ToggleButton four;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
one = (ToggleButton) findViewById(R.id.toggleButton1);
two = (ToggleButton) findViewById(R.id.toggleButton2);
three = (ToggleButton) findViewById(R.id.toggleButton3);
four = (ToggleButton) findViewById(R.id.toggleButton4);
one.setOnCheckedChangeListener(changeChecker);
two.setOnCheckedChangeListener(changeChecker);
three.setOnCheckedChangeListener(changeChecker);
four.setOnCheckedChangeListener(changeChecker);
}
OnCheckedChangeListener changeChecker = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
if (buttonView == one) {
two.setChecked(false);
three.setChecked(false);
four.setChecked(false);
}
if (buttonView == two) {
one.setChecked(false);
three.setChecked(false);
four.setChecked(false);
}
if (buttonView == three) {
two.setChecked(false);
one.setChecked(false);
four.setChecked(false);
}
if (buttonView == four) {
two.setChecked(false);
three.setChecked(false);
one.setChecked(false);
}
}
}
};
}
ThePikeman 的解決方案還可以,但根據您有多少按鈕,您可能需要考慮一個可以迭代的數組。
對於少量的按鈕,可以簡化 Pikeman 的代碼以節省一些打字...
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
if (buttonView != one) {
one.setChecked(false);
}
if (buttonView != two) {
two.setChecked(false);
}
if (buttonView != three) {
three.setChecked(false);
}
if (buttonView != four) {
four.setChecked(false);
}
}
}
我使用以下function;
private void setIsChecked(CheckBox checkBox){
buttonOne.setChecked(false);
buttonTwo.setChecked(false);
buttonThree.setChecked(false);
checkBox.setChecked(true)
}
現在所有這些都被視為除了您選擇的那個
前任
setIsChecked(buttonOne);
現在只有一個按鈕被選中等等..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.