如果单击检查帐户时,我正在尝试显示警报对话框,如果缺少帐户信息。
我在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();
}
}
});
答案 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);