验证Android首选项并显示一个对话框

时间:2012-02-11 22:27:17

标签: android sharedpreferences

我正在尝试验证用户输入的首选项文本,并在出现错误时显示对话框。但是当对话框尝试显示以下错误时,应用程序崩溃:

02-11 16:50:04.117:E / AndroidRuntime(3769):android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌android.os.BinderProxy@4055feb0无效;你的活动在运行吗?

此致 和Sandeep

1 个答案:

答案 0 :(得分:0)

你的问题已经过时了,但早期的谷歌热播,所以希望这对某人有所帮助。这是我今天一起入侵的东西。

你片段中的

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);

        Your_Pref = (EditTextPreference) getPreferenceScreen().findPreference("Your_Pref");

        Your_Pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                Boolean rtnval = true;
                if (Your_Test) {
                    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                    builder.setTitle("Invalid Input");
                    builder.setMessage("Something's gone wrong...");
                    builder.setPositiveButton(android.R.string.ok, null);
                    builder.show();
                    rtnval = false;
                }
                return rtnval;
            }
        });
    }