0

だから私はAndroid(およびJava)に比較的慣れていません。複数のアクティビティから呼び出したいのでAsyncTask、メソッドで ProgressDialog を使用して通常のクラスを作成しました。static

public class SomeClass {

    // Some other methods, etc.

    public static void SomeFunction(final Context context, String FilePath) {
        new AsyncTask<Void, Void, Void>() {
            private ProgressDialog dialog;

            protected void onPreExecute() {
                dialog = ProgressDialog.show(context, "", "Loading...", true); 
            }

            protected Void doInBackground(Void... unused) { 
                for (int i=0; i<15000; i++) 
                    System.out.println("Gatorade me, Bitch: " + i);

            return null;
            }

            protected void onPostExecute(Void unused) { 
                dialog.dismiss();
            }

        }.execute();  
    }

}

問題は、のセクションのステートメント dialog = ProgressDialog.show(context, "", "Loading...", true); でエラーが発生することです。コードはそれなしで正常に実行されます。onPreExecute()AsyncTask

AsyncTask 用の新しい Java クラス ファイルを作成せずに、この問題を解決するにはどうすればよいでしょうか。それが機能することはわかっていますが、このクラス全体に対して 1 つのファイルを作成して、複数のプログラムで使用できるようにしたいだけです。

ご協力いただきありがとうございます!

4

1 に答える 1

1

関数の呼び出し中に、アプリケーション コンテキストまたはアクティビティ コンテキストを渡しているかどうかを確認します。

アプリケーション コンテキストでは、プログレス バーを表示できません。その場合は、アクティビティ コンテキストを渡してみてください。

SomeFunction(ActivityName.this,"path");
于 2012-08-24T06:06:13.107 に答える