2017-08-11 10 views
0

私のアクティビティにProgressDialogがあり、ツールバーのBackButtonをクリックすると閉じます。私は電話のBackButtonの機能を処理するOnKey関数を追加し、それはうまく動作しますが、ツールバーのBackButtonをクリックすると機能しません。ProgressDialogを設定する戻るボタンを閉じるにはツールバー

Public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       progressdialog.dismiss(); 
       finish(); 

      } 
      return true; 
     } 

私は、ツールバーの戻るボタンでsetOnclickListenerメソッドを追加したが、データがデータベースから完全にロードされたときとProgressDialogが戻って、以前の活動に行くことを閉じると、それだけで動作します。

+0

asyncTask内でprogressdialog.show()を呼び出していますか? – yasin

+0

申し訳ありませんが、私はあなたの質問を得ていませんでした。 @yasin – ASH

答えて

1

ProgressDilogはモーダルダイアログで、ユーザーの大砲がアプリケーションとやりとりすることを意味します。したがって、ダイアログが表示されているときは、任意のボタンをタップすることはできません。ダイアログは戻るボタンで閉じることができ、サブクラス化してonKeyメソッドをオーバーライドする必要もなく、correct static method for displayingを呼び出すことができます。

おそらく、ユーザーに進捗状況を示す別の方法を検討する必要があります。 ProgressDilaogは推奨されていません。 documentationから

このクラスは26 ProgressDialogアプリとの相互作用からユーザーを防ぐモーダルダイアログであり、APIレベルで廃止されました。このクラスを使用する代わりに、ProgressBarのような進行状況インジケータを使用する必要があります。これは、アプリケーションのUIに埋め込むことができます。また、通知を使用して、タスクの進行状況をユーザーに通知することもできます。

+0

私の問題を解決してくれてありがとう。今私は別のアプローチを見つけることを試みる。 – ASH

関連する問題