先生/马先生,我 我试图在切换按钮上启用/禁用蓝牙,还有一个额外的功能,在启用/禁用时要求输入密码。切换按钮在启动时处于默认状态蓝牙(意味着如果蓝牙处于启用状态,则切换将被设置为开启,如果蓝牙处于禁用状态,则切换将关闭)。
此外,当我们输入正确的密码时,它正常工作。但是,主要的问题是,当我输入错误的密码时,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"/>
请帮我解决这个问题。我在这一点上非常困难。 提前谢谢。
答案 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();
}