2011-08-07 24 views
1

アカウントのチェックをクリックするとアカウント情報が表示されない場合は、警告ダイアログを表示しようとしています。 Eclipseでエラーが発生しました。new AlertDialog.Builder(this)というと、the constructor AlertDialog.Builder(new View OnClickListener(){}) is undefinedと表示されます。 コードは、アクティビティのonCreateに追加すると正常に動作します。 thisは、あなたが、いない親のアクティビティ(checkButton.setOnClickListener(new OnClickListener(){への呼び出しで)作成しているOnClickListenerあるのでAndroid AlertDialogコンストラクタが定義されていません

checkButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View Arg0){ 
      String AccNum = null, Store = null; 
      final SharedPreferences settings = getSharedPreferences(CHECK_PREFERENCES, MODE_PRIVATE); 

      if (settings.contains("Account") == true){ 
       AccNum = (settings.getString("Account", "default")); 
       Store = (settings.getString("Store", "default")); 
      } 
      if (AccNum.length() < 7) { 
       AlertDialog alert = new AlertDialog.Builder(this).create(); 
       alert.setTitle("Account Information missing!"); 
       alert.setMessage("Enter now? "); 

       alert.setButton("Yes", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 
          startActivity(new Intent(CheckOrder.this, GoToSetup.class)); 
         } 
       }); 
       alert.setButton2("No", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 
          return; 
         } 
       }); 
       alert.show(); 

      } 
     } 
}); 

答えて

17

エラーが発生します。あなたのActivityクラスがParentActivityある場合は、これを試してみてください。

AlertDialog alert = new AlertDialog.Builder(ParentActivity.this).create(); 
+0

ありがとうございます、C++とDelphiから来ていただきありがとうございます。 OnClickListenerの外で作成し、必要に応じてプロシージャを呼び出すことはできますか? 私はしようとしましたが、私はクラスの外に呼び出すことができる何かについて私に何か言っている別のエラーがありました。 –

+0

アクティビティで関数を作成して呼び出すことができます。これはおそらくそれらの問題を解決します。 – Femi

2

あなたのクラスは、私は同じ問題を抱えていたように

public class MyClass extends Activity{ 
// ... Your code 
} 
1

として、活動を拡張する必要があります。これを試してみてください。

AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
+0

あなたの答えにいくつかの詳細を記入してください。ありがとう:) –

関連する問題