问题描述
我是 android studio 的新手,但有一个我无法解决的问题。我在论坛中搜索但没有找到(或不理解)修复。
我想要的是:使用对话框警告框(是/否)请求用户许可以读取 csv 文件,当用户单击是时,对话框关闭并使用进度条读取 csv 文件。
>我得到了什么:当我单击“是”按钮时,对话框警告框保持打开状态,我看不到进度条,因为它在警告对话框后面。阅读 CSV 文件后,警报对话框关闭,我根本没有看到进度条。
代码如下:
private void AskUserConfirmation(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle("Fichier");
builder.setMessage("Voulez vous ouvrir le fichier ?");
builder.setPositiveButton("OUI",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
//Read file
ReadCSVFile();
}
});
builder.setNegativeButton("NON",int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
我试过了:
builder.setPositiveButton("OUI",int which) {
dialog.cancel();
//Read file
ReadCSVFile();
}
});
所以我尝试了这个:
builder.setPositiveButton("OUI",int which) {
//Read file
ReadCSVFile();
dialog.cancel();
}
});
有什么想法吗? 感谢您的帮助!
米卡
解决方法
尝试用 dialog.cancel()
替换 dialog.dismiss()
。
另外,在关闭对话框之前阅读文件:
builder.setPositiveButton("OUI",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
// Reading the file:
ReadCSVFile();
dialog.dismiss();
}
});
,
在线程中调用 ReadCSVFile
。您编写它的方式是在 UI 线程上执行它并阻止关闭对话框。
builder.setPositiveButton("OUI",int which) {
dialog.cancel();
Runnable t = new Runnable()
{
@Override
public void run()
{
ReadCSVFile();
}
};
new Thread(t).start();
}
});
,
当你点击肯定按钮而不写dialog.dismiss()或dialog.cancel()时,对话框应该自动关闭。