切换按钮在蓝牙适配器上无法正常工作

时间:2015-05-15 11:17:59

标签: android toggle android-bluetooth

先生/马先生,我                     我试图在切换按钮上启用/禁用蓝牙,还有一个额外的功能,在启用/禁用时要求输入密码。切换按钮在启动时处于默认状态蓝牙(意味着如果蓝牙处于启用状态,则切换将被设置为开启,如果蓝牙处于禁用状态,则切换将关闭)。

此外,当我们输入正确的密码时,它正常工作。但是,主要的问题是,当我输入错误的密码时,Toggle的行为不符合预期。

我的意思是,假设蓝牙已开启,我正在尝试通过我的应用禁用它。当我点击Toggle时,它会要求我输入密码。现在,如果输入错误的密码,蓝牙不会关闭,但切换按钮会将其状态更改为关闭。

以下是我到目前为止所尝试的内容: -

    setContentView(R.layout.activity_main);
    mb = BluetoothAdapter.getDefaultAdapter();
    tb1 = (ToggleButton)findViewById(R.id.appToggleBtn);

    tb1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Check();
        }
    });
}


 public void Check()
{
    final Dialog dialog = new Dialog(MainActivity.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.dialog);
    dialog.setCancelable(true);

    dialog.show();

    ImageView saveBtn=(ImageView)dialog.findViewById(R.id.confirmdialogBtn);
    final EditText password=(EditText)dialog.findViewById(R.id.confirmdialogEditText);

     saveBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) 
        {
            if(password.getText().toString().equals("asd"))
            {
                if(mb.isEnabled())
                {
                    mb.disable();
                    tb1.setChecked(mb.isEnabled());
                }
                else
                {
                    mb.enable();
                    tb1.setChecked(mb.isEnabled());
                }
            }
            else
            {
                Toast.makeText(getApplicationContext(), "Wrong", 1000).show();  
                if(mb.isEnabled())
                {
                    tb1.setChecked(mb.isEnabled());
                }
                else
                {
                    tb1.setChecked(mb.isEnabled());
                }
            }
            dialog.dismiss();
        }

     });

}

另外,对于Toggle Button,我使用了: -

  android:background="@drawable/toggle_selector"

和toggle_selector.xml

<item android:drawable="@drawable/toggle_on" android:state_checked="true"/>
<item android:drawable="@drawable/toggle_off" android:state_checked="false"/>

请帮我解决这个问题。我在这一点上非常困难。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个。

            if(password.getText().toString().equals("asd"))
            { 
                if(mb.isEnabled()) 
                { 
                    mb.disable(); 
                    tb1.setChecked(mb.isEnabled()); 
                } 
                else 
                { 
                    mb.enable(); 
                    tb1.setChecked(mb.isEnabled()); 
                } 
            } 
            else 
            { 
                Toast.makeText(getApplicationContext(), "Wrong", 1000).show();
            }