Android:带有AlertDialog的首选项
我的Android:带有AlertDialog的首选项,android,android-fragments,Android,Android Fragments,我的on首选项单击Listener创建一个新的AlertDialog,如下所示。当我运行程序时,我得到了期望值 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 我的代码有什么问题 public static class PrefsFragment extends PreferenceFragment { Preferenc
on首选项单击Listener
创建一个新的AlertDialog
,如下所示。当我运行程序时,我得到了期望值
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
我的代码有什么问题
public static class PrefsFragment extends PreferenceFragment {
Preference pref= findPreference("text_preference1");
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
new AlertDialog.Builder(mContext).setTitle(R.string.alert_dialog_title)
.setMessage(R.string.alert_dialog_message)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton(R.string.alert_dialog_nein, null).show();
//do s.th.
return false;
}
});
}
我想你得到的是
ApplicationContext
。但它不应该用于创建对话框
您不应该使用new AlertDialog.Builder(mContext)
中的mContext
,它返回与片段关联的活动
因为您使用的是片段,所以只需调用片段getActivity()
方法即可获取活动的上下文