2

MainActivityに表示されるデータベースからレポートを計算できるアプリを作成していますReportActivity。すべてのレポート計算はで行われReportActivity.onCreate()ます。

ユーザーがMainActivityのメニュー「レポートの生成」をクリックすると、メニュー ReportActivity.onCreate()が終了してレポートが表示されるまで2秒間開いたままになります。

ユーザーに視覚的なフィードバックを与える最も簡単な方法は何ですか?

AsyncTaskですべての計算を実行しているときにprogressdialogを表示するProgressDialogonCreateをすでに見つけました。

メニューが正常にクリックされ、デバイスがクラッシュしていないことをユーザーに視覚的にフィードバックする簡単な方法があるのではないかと思います。

msウィンドウでは、waitcursor(砂時計)を使用します

ReportActivityのoncreateでProgressDialog()を開こうとしました

    final ProgressDialog progressDialog = ProgressDialog.show(this, "MY Dialog", "Please wait...");

しかし、それはまったく表示されていません。

最終的な解決策を更新します。

回答が示唆しているように、このコードサンプル に基づいて、このチュートリアルに続く処理のためにAsyncTaskを実装しました

4

3 に答える 3

2

実行時間の長いコードをバックグラウンドスレッドに移動する必要があります。UIスレッドでコードを長時間実行すると、UIがロックされ、ユーザーはアプリがフリーズ/クラッシュしていると思います。の使用を検討してくださいAsyncTask。これにより、バックグラウンドスレッドでプロセスを実行し、視覚的なフィードバックを提供して、アプリが機能していることをユーザーに知らせることができます。

于 2012-04-20T22:04:42.317 に答える
1

ProgressDialogを使用してレイアウトを設計します。setContentView(Progressdialog)を使用します。2〜4秒の時間をカウントし(選択)、setContentViewで古いレイアウトを再度設定します。AsyncTaskを使ってみませんか?

于 2012-04-20T22:05:40.067 に答える
1

バーまたはサークルのアクティビティインジケーターを使用します。公式デザインガイドから:

アクティビティインジケーターは、長さが不定の操作用です。彼らは、舞台裏で何が起こっているのかについての詳細に立ち入ることなく、何かが終わるまでしばらく待つようにユーザーに求めます。

于 2013-04-02T13:42:48.290 に答える