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时,我得到了一个错误。