我有一个 Android 应用程序,可以扫描 SD 卡并播放位于 SD 卡上的文件。但是,我想先检查 SD 卡是否在插槽中,然后才能继续处理。但是,警报对话框不会等待输入并继续处理后台,这会出现错误,因为没有 SD 卡并且后台处理尝试访问该 SD 卡。我想等到完成警报对话框。有什么办法可以做到这一点吗?这是警报对话框的代码。我只想让程序等待,直到用户选择该选项..
String state = Environment.getExternalStorageState();
if (state.equalsIgnoreCase("mounted"))
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("The SD Card has been removed from your device. Please re-insert the SD card and try again")
.setCancelable(false)
.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id)
{
onRecreate();
}
})
.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
// onDestroy();
finish();
}
})
.setTitle("No SD-card Found")
.setIcon(R.drawable.alert_dialog_icon_m);
AlertDialog alert = builder.create();
alert.show();
return 0;
}//IF condition closes
else
return 1;
最佳答案
在用户按下对话框的按钮之一之前不要执行任何操作。由于如果未安装 SD 卡,您无能为力,因此只需单击“请安装 SD 卡以继续”和“确定”按钮即可 finish()
-es Activity 。
关于android:警报对话框不等待输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983213/