Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类中从AppCompatPreferenceActivity扩展的DialogFragment_Java_Android_Android Preferences_Android Dialogfragment - Fatal编程技术网

Java 类中从AppCompatPreferenceActivity扩展的DialogFragment

Java 类中从AppCompatPreferenceActivity扩展的DialogFragment,java,android,android-preferences,android-dialogfragment,Java,Android,Android Preferences,Android Dialogfragment,我的问题是我的首选项活动是从appcompatipreferenceactivity扩展而来的,我需要显示一个对话框片段。因此,当我执行以下操作时: DialogFragmente dialogFragment= new MyDialogFragmentClass() DialogFragment.show(getSupportFragmentManager(),"My Dialog") 由于无法使用getSupportFragmentManager()方法,因此出现错误。所以我的问题是,如果

我的问题是我的首选项活动是从
appcompatipreferenceactivity
扩展而来的,我需要显示一个
对话框片段
。因此,当我执行以下操作时:

DialogFragmente dialogFragment= new MyDialogFragmentClass()
DialogFragment.show(getSupportFragmentManager(),"My Dialog")
由于无法使用
getSupportFragmentManager()
方法,因此出现错误。所以我的问题是,如果我的类是从AppCompativePreferenceActivity扩展而来的,那么如何使用该方法

我尝试改用
getFragmentManager()
,但它也不起作用

这是我的课程:

public class Settings_acticity extends AppCompatPreferenceActivity {
    private SwitchPreference banner_switch;
    private SharedPreferences sharedPreferences;
    private ListPreference interstial_ad;

    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        DialogFragment dialogFragment = new MyDialog();
        dialogFragment.show(getSupportFragmentManager(), "My dialog");
    }
 }
和DialogFragment类:

public class MyDialog extends DialogFragment {


    public MyDialog(){
        // Required empty public constructor
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        View vista=getActivity().getLayoutInflater().inflate(R.layout.fragment_MyDialog,null);
        setCancelable(false);

        builder.setView(vista).setPositiveButton(R.string.aceptar, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                //Yes Code
            }
        }).setNegativeButton(R.string.cancelar, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            //No code
            }
        });
        return builder.create();
    }

}

谢谢你的帮助

这可能是因为您使用了支持库中的
DialogFragment

通过导入
android.app.DialogFragment
而不是
android.support.v4.app.DialogFragment
尝试使用原始版本

然后,您可以显示以下对话框:

MyDialog myDialog = new MyDialog();
myDialog.show(getFragmentManager(), "My Dialog");

我收到一个错误
显示错误。链接没有解决我的问题。主要的问题是我需要getSupportFragmentManager()方法,但我可以这样做,因为extend-AppCompatPreferenceActivity。谢谢!这是因为在我的DialogFragment类中,我正在导入v4。。。所以当我在我的主类中使用android.app.DialogFragment时,我得到了一个错误。