Проверка настроек Android и отображение диалогового окна

Я пытаюсь проверить текст предпочтений, введенный пользователем, и показать диалоговое окно в случае ошибки. Но приложение вылетает, когда диалоговое окно пытается отобразиться с ошибкой ниже:

02-11 16:50:04.117: E/AndroidRuntime(3769): android.view.WindowManager$BadTokenException: невозможно добавить окно -- токен android.os.BinderProxy@4055feb0 недействителен; ваша активность запущена?

С уважением, Сандип


person sab    schedule 11.02.2012    source источник
comment
как вы поделитесь кодом вашего диалогового окна?   -  person Urban    schedule 12.02.2012


Ответы (1)


Ваш вопрос старый, но он был одним из первых хитов Google, так что, надеюсь, это кому-то поможет. Вот кое-что, что я взломал сегодня.

в вашем фрагменте:

    @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;
            }
        });
    }
person Aaron    schedule 17.07.2012