Android 以编程方式创建自定义对话框首选项

Android 以编程方式创建自定义对话框首选项,android,dialog,preference,Android,Dialog,Preference,如何在代码中创建对话框首选项 MyDialog dialog=new MyDialog(getActivity() ); dialog.setTitle("asd"); dialog.setKey("key"); dialog.getDialog().show(); 这在我的xml文件中,当调用prom首选项屏幕时,它可以正常工作 <!-- Custom Dialog --> <com.pak.asd.M

如何在代码中创建对话框首选项

        MyDialog dialog=new MyDialog(getActivity() );
        dialog.setTitle("asd");
        dialog.setKey("key");
        dialog.getDialog().show();
这在我的xml文件中,当调用prom首选项屏幕时,它可以正常工作

<!-- Custom Dialog -->
    <com.pak.asd.MyDialog
        android:key="key" android:title="title"
        android:dialogTitle="title"
        android:negativeButtonText="no"
        android:positiveButtonText="yes" android:dialogMessage="message" />

DialogPreference
没有
DialogPreference(上下文上下文)
构造函数,那么,为什么要定义
MyDialog(上下文c)
构造函数呢?通常,你不需要那个构造函数,只需要第二个


我以前从未使用过
DialogPreference
,但是您应该能够以与基本类相同的方式创建自定义类。

您尝试了什么?寻找DialogPreference在Java代码中的用法,我从未使用过它。任何示例都适合您的扩展类,不用担心。我看到现在为API21添加了构造函数,但是如果在较旧的平台中调用
super(c,null)
,它会引发异常。你的孩子怎么了。
public class MyDialog extends DialogPreference {
    private Context c;

    public MyDialog(Context c)
    {
    //is null correct ?
        super(oContext,null);       
        this.oContext = oContext;
    }

    public MyDialog(Context c, AttributeSet attrs)
    {
        super(c, attrs);        
        this.c = c;
    }

}