0

Androidでスイッチボタンを使用して、シンプルなプロファイルマネージャーAndroidアプリケーションを構築しています。一般、サイレント、バイブという 3 つのスイッチがあります。問題は、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();
        }
    });

`

4

2 に答える 2

1

これでテストします:

    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);
            }

        }
    });

一般スイッチが非アクティブでサイレント スイッチがアクティブの場合、一般を押すと、状態がアクティブに変更され、サイレント スイッチが非アクティブに変更されます。

于 2016-02-25T21:56:22.820 に答える
0

あなたが無効と言うとき、私が想像する最初のことは、スイッチが触れられないことです。写真のように。 この例のように

このようなことをしたい場合は、setOnClickListener ブロックに次のようなものを追加する必要があります。

silent.setEnabled(false)

しかし、あなたはそれを意味していたと思います。サイレントスイッチがONの時は一般スイッチがOFF、一般スイッチがONの時はサイレントスイッチがOFFより 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);
        }
    });
于 2016-02-25T21:58:23.673 に答える