首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中控制多个开关按钮

在Android中控制多个开关按钮
EN

Stack Overflow用户
提问于 2016-02-25 20:42:52
回答 2查看 1K关注 0票数 0

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

我希望普通开关在无声开关被激活时被禁用,当普通开关被激活时,静音开关被禁用。

我的代码在哪里,应该添加什么?

代码语言:javascript
复制
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();
        }
    });

`

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-25 21:56:22

使用此方法进行测试:

代码语言:javascript
复制
    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时,这会将您的状态更改为活动,而您将无声开关更改为非活动开关。

票数 1
EN

Stack Overflow用户

发布于 2016-02-25 21:58:23

当你说残疾的第一件事,我想是开关不能触摸。就像在照片里一样。

如果您想要这样做,您应该添加类似的setOnClickListener块;

代码语言:javascript
复制
silent.setEnabled(false)

但是我认为您的意思是:当静音开关处于关闭状态时,当普通开关处于关闭状态时,当普通开关处于关闭状态时,则可以使用setChecked方法。就像这样;

代码语言:javascript
复制
 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);
        }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35637899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档