私は3つのトグルボタンを使用しています。私のAndroidアプリケーションでは、これらのトグルボタンの1つだけを一度に選択できるようにしたいと思います。どうすればこれを行うことができますか?
11695 次
4 に答える
14
単純な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);
}
}
}
};
}
于 2011-07-27T11:56:05.110 に答える
9
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);
}
}
}
于 2013-09-07T03:45:56.360 に答える
0
私は次の関数を使用します。
private void setIsChecked(CheckBox checkBox){
buttonOne.setChecked(false);
buttonTwo.setChecked(false);
buttonThree.setChecked(false);
checkBox.setChecked(true)
}
これで、選択したものを除いて、それらすべてが見なされます
元
setIsChecked(buttonOne);
これで、ボタン1のみがチェックされます。
于 2017-02-17T16:27:10.797 に答える