2 slaks SLaks 于 2013.05.27 15:50 提问

Android: AlertDialog优先级

OnPreferenceClickListener函数创建了一个新的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;
        }
    });
}

2个回答

franzhong
franzhong   2013.05.28 12:11

试一下将Builder参数mContext换为Activity名,比如MyTestActivity.this试一下

wurenbi45
wurenbi45   2013.05.28 17:29

mContext,赋的什么值

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!