Android AlertDialog构造函数未定义

时间:2011-08-07 05:52:00

标签: android alertdialog

如果单击检查帐户时,我正在尝试显示警报对话框,如果缺少帐户信息。 我在Eclipse中遇到错误new AlertDialog.Builder(this)the constructor AlertDialog.Builder(new View OnClickListener(){}) is undefined。 如果我将它添加到活动的onCreate中,代码就可以正常工作。

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();   

            }
        }
});

3 个答案:

答案 0 :(得分:17)

发生错误是因为this是您正在创建的OnClickListener(在checkButton.setOnClickListener(new OnClickListener(){的调用中),而不是父活动。如果您的活动类为ParentActivity,请尝试以下操作:

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

答案 1 :(得分:2)

您的课程需要扩展活动,例如

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

答案 2 :(得分:1)

我有同样的问题。试试这个。

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