我有一个带有按钮的应用程序,用于打开和关闭BT。我那里有以下代码;
public void buttonFlip(View view) {
flipBT();
buttonText(view);
}
public void buttonText(View view) {
Button buttonText = (Button) findViewById(R.id.button1);
if (mBluetoothAdapter.isEnabled() || (mBluetoothAdapter.a)) {
buttonText.setText(R.string.bluetooth_on);
} else {
buttonText.setText(R.string.bluetooth_off);
}
}
private void flipBT() {
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
} else {
mBluetoothAdapter.enable();
}
}
我正在调用按钮Flip(翻转BT状态),然后调用ButtonText,后者应该更新UI。但是,我遇到的问题是,打开BT需要花费几秒钟的时间-
在这几秒钟中,BT状态未启用,即使我的按钮在2秒钟内打开,我的按钮也会关闭蓝牙。
我STATE_CONNECTING
在BluetoothAdapter
android文档中找到了该常量,但是…我只是不知道如何使用它,无论是新手还是所有人。
因此,我有两个问题:
您将需要注册一个BroadcastReceiver
来监听状态的任何变化BluetoothAdapter
:
作为您的私有实例变量Activity
(或在单独的类文件中,…首选):
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_OFF:
setButtonText("Bluetooth off");
break;
case BluetoothAdapter.STATE_TURNING_OFF:
setButtonText("Turning Bluetooth off...");
break;
case BluetoothAdapter.STATE_ON:
setButtonText("Bluetooth on");
break;
case BluetoothAdapter.STATE_TURNING_ON:
setButtonText("Turning Bluetooth on...");
break;
}
}
}
};
请注意,这是假设您Activity
实现的方法setButtonText(String text)
将相应地更改Button
的文本。
然后在您的中Activity
,注册并注销BroadcastReceiver
以下内容,
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* ... */
// Register for broadcasts on BluetoothAdapter state change
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mReceiver, filter);
}
@Override
public void onDestroy() {
super.onDestroy();
/* ... */
// Unregister broadcast listeners
unregisterReceiver(mReceiver);
}
问题内容: 当用鼠标单击时,如何检测JRadioButton从“未选中”更改为“选中”?我曾尝试在按钮上使用ActionListener,但是每次单击单选按钮时都会触发该事件,而不仅仅是在将状态更改为“选定”时触发。 我曾想过要维护一个记住按钮状态的布尔变量,并在ActionListener中对其进行测试以查看是否更改其状态,但是我想知道是否有更好或更干净的解决方案。 问题答案: 看一下JRadi
问题内容: 我知道React可以异步并批量执行状态更新以优化性能。因此,在调用之后,您将永远无法相信要更新的状态。但是你可以信任的反应 更新相同的顺序状态被称为对 相同的组件? 不同的组件? 考虑在以下示例中单击按钮: 1. 在以下情况下,是否有可能 a为假而b为真 : 2. 在以下情况下,是否有可能 a为假而b为真 : 请记住,这些是我用例的极端简化。我意识到我可以以不同的方式进行操作,例如,在
我知道React可能会异步和批量地执行状态更新,以进行性能优化。因此,在调用之后,您永远不能相信会更新状态。但是,您是否信任React按照调用时的顺序更新状态 相同的组件? 不同的组件? 任何有文档支持的答案都是非常感谢的。
Hibernate 的用户曾要求一个既可自动分配新持久化标识(identifier)保存瞬时(transient)对象,又可更新/重新关联脱管(detached)实例的通用方法。saveOrUpdate() 方法实现了这个功能。 // in the first session Cat cat = (Cat) firstSession.load(Cat.class, catID); // in a
问题内容: 我想知道何时失去互联网连接并重新获得互联网,以便可以在显示“糟糕,没有互联网”的警报和包含从我的服务器派生的数据的Google地图或网格之间切换。 这个相关的问题和另一个相关的问题认为他们有答案,但没有答案。 他们的解决方案适用于Chrome版本34.0.1847.137 m,MS IE v11.0.xx,但不适用于FireFox v29.0.1,因此,我正在寻求一种适用于所有这三种浏
我阅读了一些关于“发送数据”状态的解释,但我仍然不知道查询是否正在运行。他们说“发送数据”是指服务器向客户端发送一些数据,但我真的不知道发送的是哪一个数据。 当MySQL处于“发送数据”状态时意味着什么?