2

進行状況ダイアログ (によって作成された) を持つアプリケーションがあります。pd = new ProgressDialog(ActivityName.this); ... pd.show();すべて正常に動作しますが、ダイアログをクリックまたはタップすると、ダイアログが閉じられ、アクティビティ コンテンツがビューの前面に表示されます (ダイアログによって処理されるプロセスは、期待どおりに実行され続けます)。 - 画面の向きを変更すると、ダイアログが再表示されます)。

ダイアログを一番上に保つ方法はありますか (つまり、ダイアログの外側のタップを無効にします)?

注:エミュレーターでは、クリックは期待どおりに無効になっています。実際の電話 (SGII、A4.0.4) では、進行状況ダイアログの周囲をタップすると、ダイアログが閉じます...

コード:

mProgressDialog = new ProgressDialog(DownloaderActivity.this); 
mProgressDialog.setMessage(DownloaderActivity.this.getString(R.string.downloadin‌​gfile));      
mProgressDialog.setIndeterminate(false); 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);   
mProgressDialog.show(); … mProgressDialog.dismiss();
4

1 に答える 1

9

setCanceledOnTouchOutside() メソッドを false に設定します。 Android API を見てみましょう

それを行ってもまだ機能しない場合は、Android システムのバグである可能性があります。これを回避する 1 つの方法は、onCancelListener を使用して、ダイアログがキャンセルされたときに、リスナーのコードが進行状況が確認されるようにすることです。そうでない場合は、ダイアログを再起動できます。

于 2012-11-26T22:24:05.697 に答える