我有一個alertDialog
需要輸入進一步處理。由於處理過程可能需要一段時間,因此我想關閉alertDialog
並在執行處理方法的過程中顯示圖像。問題是process()
在對話被實際解除之前被調用。因此,在加載時間內,程序基本上會「掛起」,顯示警報對話框,直到完成process()
,之後圖像顯示一秒鐘,從而破壞其目的。如何在進一步處理之前關閉對話框?
我嘗試在process()
方法中顯示圖像,並嘗試在同步方法中執行dialog.dismiss()
,但結果保持不變。
alertDialogBuilder.setCancelable(true).setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String input = et.getText().toString();
dialog.dismiss(); //finish this first
process(input); //then do this
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
剛開始'在不同的線程process'? – Tomer
我是新來的編碼,所以我很抱歉,如果我做錯了。我試圖把進程(輸入)放入Thread的一個匿名子類中,但是我仍然得到相同的結果,除此之外它更快完成一些。 – GomuGomu