Android 程序没有´;当要求打开蓝牙时,请不要停止
我尝试使用对话框Android 程序没有´;当要求打开蓝牙时,请不要停止,android,bluetooth,dialog,Android,Bluetooth,Dialog,我尝试使用对话框BluetoothAdapter.ACTION\u REQUEST\u ENABLE向用户请求 打开蓝牙,但当我使用它时,程序没有等待对话框结束。 我必须知道用户是否允许打开蓝牙,这样,如果他不允许,我就可以返回到以前的活动。即使使用onActivityResult也无法获得结果 如何获得对话框的结果以及如何使程序等待对话框的结果 我尝试使用的对话框: private int REQUEST_ENABLE_BT = 100; ... Intent btEnable = n
BluetoothAdapter.ACTION\u REQUEST\u ENABLE
向用户请求
打开蓝牙,但当我使用它时,程序没有等待对话框结束。我必须知道用户是否允许打开蓝牙,这样,如果他不允许,我就可以返回到以前的活动。即使使用
onActivityResult
也无法获得结果
如何获得对话框的结果以及如何使程序等待对话框的结果
我尝试使用的对话框:
private int REQUEST_ENABLE_BT = 100;
...
Intent btEnable = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(btEnable, REQUEST_ENABLE_BT);
在那之后,它只是继续,不等待结果
但是当我使用它时,程序并没有等待对话框结束
这是不应该的startActivity()
和startActivityForResult()
是异步的
我只是没有打电话给onActivityResult 您不需要在ActivityResult()上调用
。您可以在ActivityResult()上实现
。当用户完成您通过startActivityForResult()
启动的活动时,将调用它。这是一本书
public void onActivitResult(int RequestCode,int ResultCode,Intent Data){super.onActivityResult(RequestCode,ResultCode,Data);if(RequestCode==REQUEST\u ENABLE\u BT)…}未调用此函数
那是因为你把方法名拼错了。它是onActivityResult(),而不是onActivityResult()。使用@Override
注释可帮助检测此类问题
如何获得对话框的结果
在onActivityResult()的中,查看蓝牙是否已启用
如何让程序等待对话框的结果
你没有。Android是事件驱动的;您可以通过onActivityResult()处理事件
,因此现在在代码中找到正确答案
//Global
REQUEST_CODE_1 = 0;
REQUEST_CODE_2 = 1;
onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent dialog = new Intent(myclass.this, dialog1.class);
startActivityForResult(dialog, REQUEST_CODE_1);
}
onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == REQUEST_CODE_1)
{
if(resultCode == RESULT_OK)
{
Intent nextDialog = new Intent(myclass.this, nextDialog.class);
startActivityForResult(nextDialog, REQUEST_CODE_2);
}
}
if(requestCode == REQUEST_CODE_2)
{...}
}
“用onActivityResult获得结果也不起作用”——请更详细地解释你这句话的意思。“不工作”是什么意思?我只是没有打电话给onActivityResult。我像以前一样编写了它,但活动只是继续进行,没有等待结果。public void onActivitResult(int-RequestCode,int-ResultCode,Intent-Data){super.onActivityResult(RequestCode,ResultCode,Data);if(RequestCode==REQUEST\u-ENABLE\u-BT)}这不是一个调用,非常感谢。现在它起作用了。我在onActivityResult()中捕获结果,如果结果正常,则可以在onActivityResult()中启动下一个对话框。onActivityResult()我完成这项任务的速度很慢,所以下面是它的其余部分://Global REQUEST\u CODE\u 1=0;请求_代码_2=1;onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Intent dialog=newintent(myclass.this,dialog1.class);startActivityForResult(dialog,REQUEST_CODE_1);}onActivityResult(int requestCode,int resultCode,Intent data){if(requestCode==REQUEST_CODE_1){if(resultCode==RESULT_OK){Intent nextDialog=newintent(…);starttactivityforresult(nextDialog,REQUEST_CODE_2);}}如果(requestCode==REQUEST_CODE_2){…}好的,我会在6小时内发布正确的内容,这样我就可以作为答案而不是评论来做了。。。