Reputation: 3
I'm Building a simple profile manager android application Using Switch Button in Android. There are 3 switches named General,Silent and Vibrate. Problem is all 3 switches are working together
I want the General Switch to be disabled when the silent switch is activated and silent to be disable when the general Switch is activated.
Where is my Code and what should be added ?
general = (Switch) findViewById(R.id.generalSwitch);
silent = (Switch) findViewById(R.id.silentSwitch);
vibrate = (Switch) findViewById(R.id.vibrateSwitch);
myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
general.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
Toast.makeText(MainActivity.this,"General Mode Activated",Toast.LENGTH_LONG).show();
}
});
silent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Toast.makeText(MainActivity.this,"Silent Mode Activated",Toast.LENGTH_LONG).show();
}
});
vibrate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
Toast.makeText(MainActivity.this,"Vibrate Mode Activated", Toast.LENGTH_LONG).show();
}
});
`
Upvotes: 0
Views: 1279
Reputation: 723
Test with this:
general.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
silent.setChecked(false);
}
}
});
silent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
general.setChecked(false);
}
}
});
if general switch is inactive and silent switch is active, when you press general, this change your state to active and you change silent switch to inactive.
Upvotes: 1
Reputation: 439
When you say disabled first thing I imagine is switch can not to be touchable. Like in the picture.
If you want to do something like this you should add in setOnClickListener block something like ;
silent.setEnabled(false)
But I think you meant that; When the silent switch is ON general switch is OFF and when the general switch is ON silent switch is OFF Than you can use setChecked method. Like this;
general.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
Toast.makeText(MainActivity.this,"General Mode Activated",Toast.LENGTH_LONG).show();
silent.setChecked(false);
}
});
silent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Toast.makeText(MainActivity.this,"Silent Mode Activated",Toast.LENGTH_LONG).show();
general.setChecked(false);
}
});
Upvotes: 1