2017-11-08 4 views
0

自分のアプリケーションのすべての警告を保持するJavaクラスを作成したいとします。メソッドを静的にして、呼び出すのが簡単にしたい。ここに私のコードです。別のクラスのAlertDialogの呼び出し

アラートクラス

public class Alerts { 

    // Player has not selected a team 
    public static void noPlayerTeam(View view) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(view); 
     builder.setMessage("Select your team."); 
     builder.setCancelable(true); 

     builder.setNeutralButton(
       "Okay", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }); 

     AlertDialog a = builder.create(); 
     a.show(); 
    } 
} 

Acvitetyコード

Alerts.noPlayerTeam(view); 

ドキュメントは、私はAlertクラスにアクティビティのコンテキストを取得して苦労してるAlertDialog.Builder(Context context)

を示し。上記のコードのエラーはです。エラー:(13、63)エラー:互換性のないタイプ:ビューをコンテキストに変換できません。

私はコードが動作するのは、アクティビティと同じスクリプトで機能的に実行できるためです。代わりにview

答えて

3

使用view.getContext()

AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); 

AlertDialogインスタンスを取得するには、コンストラクタをBuilderの有効なコンテキスト(UIコンテキスト)を渡す必要があります。

+1

ああはあなたに感謝し、私はそれが簡単な修正を知っていたが、それを把握することができませんでした!私はあなたの時間を感謝します。 – Regis

0

あなたActivity 012でConstant
public static void alertDialogShow(Context context, String message) 
    { 
     final AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
     alertDialog.setMessage(message); 
     alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int which) 
      { 
       alertDialog.dismiss(); 
      } 
     }); 
     alertDialog.show(); 
    } 

  • コールでこれを置くこの

  • をお試しください
    Constant.alertDialogShow(YourActivity.this,"Your Error Message"); 
    
関連する問題