0

私はアンドロイドが初めてです。ログインボタンをクリックするとWebサービスが呼び出され、認証されているかどうかを確認するログインメカニズムを作成しています。一方、結果がサービスから返されない限り、進行状況バーが表示され、結果が来ると進行状況ダイアログが消えて、ログインに成功した別のアクティビティに移動する必要があります。ユーザー名とパスワード。また、キャンセル ボタンを表示して、認証に時間がかかる場合にユーザーがダイアログを閉じるオプションを使用できるようにします。これを試しましたが、エラーが発生します。

 public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);

    Button btn_logIn = (Button)findViewById(R.id.btn_signIn );
    btn_logIn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {

            ProgressDialog dialog = new ProgressDialog(getBaseContext());
            dialog.setMessage("Please Wait. Your authentication is in progress");
            dialog.setButton("Cancel", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {                        
                    dialog.dismiss();                       
                }
            }); //end of anonymous class

            dialog.show();              
        }           
    }); //end of anonymous class    
} //end of onCreate()

ログインボタンをクリックすると、アプリケーションを強制終了するメッセージが表示されます。onCreateDialog(int id)私はdeveloper.android.comでそれを読んだので、私はその方法を使用しませんでした

Opening a progress dialog can be as simple as calling ProgressDialog.show(). For
example, the progress dialog shown to the right can be easily achieved without
managing the dialog through the onCreateDialog(int) callback, as shown here:

ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", 
                    "Loading. Please wait...", true);

Progress Dialog に onCreateDialog() を使用する必要はないと言っているのを見てください。without managing the dialog through the onCreateDialog(int) callback. 私の場合、ダイアログを表示するにはどうすればよいですか。ありがとう

4

1 に答える 1

0

getBaseContext() を使用するか、これに関連するダイアログが必要な場合は、次のいずれかを使用します

 ProgressDialog dialog = new ProgressDialog(view.getBaseContext());

また

 ProgressDialog dialog = new ProgressDialog(view.getContext());

また

 ProgressDialog dialog = new ProgressDialog(view.getApplicationContext());

もう一つの方法は

上で提案したように

  ProgressDialog dialog = new ProgressDialog(YourRecentActivity.this);
于 2012-06-28T12:19:47.770 に答える