0

AsynchTaskを呼び出すときに、ユーザーにダイアログを表示しようとしています。

私は次のようなonPreExecuteメソッドを使用しようとしています:

     protected void onPreExecute(Long result) 
     {
         dialog = new Dialog(UpdateProfileActivity.this);

         dialog.setContentView(R.layout.please_wait);
         dialog.setTitle("Updating account details...");

         dialog.show();      
     }

次に、onPostExecuteメソッドでこれを行います。

    @Override
    protected void onPostExecute(String result) 
    {    
        try {
            dialog.dismiss();
        } catch (Exception ee) {
            // nothing
        }

ただし、ダイアログは表示されません。ドキュメントを見て、onPreExecuteについての言及がありますが、それがどのように使用されているかわかりません。鉱山は単に呼ばれることはありません。

それの適切な使用法は何ですか?ダイアログが適切に開閉されていることを確認するにはどうすればよいですか?

ありがとうございました!

4

2 に答える 2

1

onPreExecuteメソッドが適切にオーバーライドされていないため、メソッドが呼び出されることはありません。正しいメソッドシグネチャは次のとおりです。

@Override
protected void onPreExecute(){
    //Your code
}

一般的なヒントとして、メソッドをオーバーライドするときは常に@Overrideアノテーションを使用してください。存在しないメソッドをオーバーライドしようとした場合、または何か間違ったものを入力した場合、エラーが表示されます。

于 2012-11-11T22:33:42.270 に答える
1

Niekは、事前実行が呼び出されないことについて正しいです。ただし、おそらく必要なのはProgressDialogのようです。このように設定できます

ProgressDialog progress = new ProgressDialog(context);
progress.setMessage("Loading Message");
progress.setTitle("Title");
progress.show();

次に、onPostExecuteで、

progress.dismiss();

それを削除するには。よりカスタムに見えるものが必要な場合は、進行状況ダイアログをサブクラス化して、カスタム画像/その他のカスタマイズを追加できます。

于 2012-11-11T22:36:10.857 に答える