我对 Java 很陌生,如果有人能向我解释一下,我将不胜感激
我如何实现 startActivityForResult(Intent, int)
和
蓝牙可发现性中的onActivityResult()
here .
我想要实现的是:在按钮启用 BTDisco
上单击
(if(bttn.getId() == R.id.bt_disco
) 我的程序调用
BTDiscoverable()
方法:
public void BTDiscoverable() {
Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
BT_ENABLE_TIME);
startActivityForResult(discoverableIntent, REQUEST_ENABLE_BT);
}
现在, dialog弹出。如果用户单击否,程序不应
继续。如果用户单击"is",Enable BTDisco
按钮应变为
不可用,另一个按钮(我们称之为开始
)变为可用。我
编写了 onActivityResult
,这将使 Start
按钮可用,但我
怀疑这样做是否正确。 fragment 如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data)
{
if (requestCode == REQUEST_ENABLE_BT)
{
if(resultCode == RESULT_OK)
{
((Button) findViewById(R.id.bt_server_start)).setEnabled(true);
BTCountDown = new BTTimer(BT_TIME_BTTIME,BT_TIME_BTTIME);
BTCountDown.start();
}
}
}
startActivityForResult
在 BTDiscoverable
方法中调用,但它确实
没有提供我想要的。我已关注 this 但我很
新来的,我不知道如何在像我这样的问题中实现这个。
onActivityResult
方法是扩展 Activity
的实现类。
编译时没有错误。 长话短说:R.id.bt_server_start
按照最初编程的方式保持禁用状态。
确实需要一些帮助。
最佳答案
就放这个
if(resultCode != RESULT_CANCELED)
文档说明如下
然后,您的 Activity 将收到对 onActivityResult()) 回调的调用,结果代码等于设备可发现的持续时间。如果用户回答“否”或发生错误,结果代码将为 RESULT_CANCELED。
因此,如果结果代码不是 RESULT_CANCELED,那么您就可以启用按钮。
关于java - 用户在蓝牙可发现性对话框中单击的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410427/