扩展对话在android中出错了

sua*_*nai 3 android

我扩展了一个Dialog

java代码

public class Dialog_query extends Dialog implements OnClickListener {   

}  
Run Code Online (Sandbox Code Playgroud)

通过XML定义一个接口 在此输入图像描述

现在想通过点击日期1来选择日期.代码如下记录为:代码按钮

java按钮

Button btn=(Button)findViewById(R.id.BtnDate);           
        btn.setOnClickListener(new View.OnClickListener() {   
          public void onClick(View v) {   
            new DatePickerDialog(Dialog_query.this,   
                d2,   
                dateAndTime.get(Calendar.YEAR),   
                dateAndTime.get(Calendar.MONTH),   
                dateAndTime.get(Calendar.DAY_OF_MONTH)   
                ).show();   
          }   
        }); 
Run Code Online (Sandbox Code Playgroud)

现在的问题是,指出"构造函数DatePickerDialog(Dialog_query,DatePickerDialog.OnDateSetListener,int,int,int)是未定义的"

后来发现在这里添加"Toast.makeText(LoginSuccess.this,"关于敏捷软件1.0",Toast.LENGTH_LONG).show();"

还指出"Toast类型中的方法makeText(Context,CharSequence,int)不适用于参数(Dialog_query,String,int)"

但是"代码按钮"在Activity中是正确的.

为何在延伸案件中会出现这样的错误?

Ale*_*Mok 5

你是Dialog_query继承自对话框.但Dialog类不会从Activity继承:http://developer.android.com/reference/android/app/Dialog.html

DatePickerDialog的构造函数需要上下文或活动.输入您的活动名称而不是Dialog_query.this

new DatePickerDialog(ActivityName.this,   
                d2,   
                dateAndTime.get(Calendar.YEAR),   
                dateAndTime.get(Calendar.MONTH),   
                dateAndTime.get(Calendar.DAY_OF_MONTH)   
                ).show(); 
Run Code Online (Sandbox Code Playgroud)