我正在使用Android中的Switch构建一个简单的概要管理器android应用程序。有3个开关,名为一般,安静和振动。问题是三个开关都在一起工作。

我希望普通开关在无声开关被激活时被禁用,当普通开关被激活时,静音开关被禁用。
我的代码在哪里,应该添加什么?
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();
}
});`
发布于 2016-02-25 21:56:22
使用此方法进行测试:
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);
}
}
});如果普通开关是非活动的,静音开关是活动的,当您按下general时,这会将您的状态更改为活动,而您将无声开关更改为非活动开关。
发布于 2016-02-25 21:58:23
当你说残疾的第一件事,我想是开关不能触摸。就像在照片里一样。

如果您想要这样做,您应该添加类似的setOnClickListener块;
silent.setEnabled(false)但是我认为您的意思是:当静音开关处于关闭状态时,当普通开关处于关闭状态时,当普通开关处于关闭状态时,则可以使用setChecked方法。就像这样;
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);
}
});https://stackoverflow.com/questions/35637899
复制相似问题