Вылет приложения при нажатии на EditText в PopupWindow

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Вылет приложения при нажатии на EditText в PopupWindow

Сообщение KamiSempai » 20 апр 2012, 22:23

Проблема такова: Создаю PopupWindow, располагаю на нем EditText и показываю на экране. При нажатии на EditText появляется экранная клавиатура и приложение вылетает с ошибкой.
Я знаю, что ошибка возникает не на всех телефонах. Например, на эмуляторе версии 2.2 ошибка не возникает, но на моем Galaxy S (Android 2.2.1, версия прошивки: I9000XXJIPY) она есть.
Текст Activity такой:

Код: Выделить всё

public class TestActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn = (Button) findViewById(R.id.testBtn);
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v)
            {
                showPopup();
            }
        });
    }


    private void showPopup()
    {
        PopupWindow window = new PopupWindow(this);
        window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
        window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);

        window.setTouchable(true);
        window.setFocusable(true);

        EditText text = new EditText(this);
        text.setText("Dont touch, this crash!");

        window.setContentView(text);
        window.showAtLocation(text, Gravity.CENTER, 30, 30);
    }
}
Файл xml сильно расписывать не буду, на нем просто расположена 1 кнопка с id=testBtn.

Сообщение об ошибке:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRoot$W@4816f358 is not valid; is your activity running?
Может есть у кого идеи, хотя бы как можно выяснить в чем причина?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Вылет приложения при нажатии на EditText в PopupWindow

Сообщение andev » 22 апр 2012, 23:18

Ошибка проявляется каждый раз или "плавает"? У меня на Samsung Captivate 2.3.3@I897UCKF1 нет.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Вылет приложения при нажатии на EditText в PopupWindow

Сообщение KamiSempai » 23 апр 2012, 09:45

Заметил интересный факт, если редактировать текст в ландшафтном режиме, ошибка не появляется. В портретном программа вылетает стабильно.

PS: Я кажется понял в какую сторону искать решение проблемы. Как точно выясню в чем причина, обязательно отпишусь.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Вылет приложения при нажатии на EditText в PopupWindow

Сообщение andev » 23 апр 2012, 10:20

При переходе из ландшафтного в портретный в момент поворота тоже сыпет ошибками, но не вылетает.
Случайно не в сторону очередности и завершенности прорисовки View на экране?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Вылет приложения при нажатии на EditText в PopupWindow

Сообщение KamiSempai » 24 апр 2012, 14:54

Я зашел в тупик. Это просто фантастика!
Если тапнуть по EditText, а затем, не отпуская, переместить палец за пределы поля ввода, ошибка не возникает, клавиатура появляется и можно свободно корректировать текст.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Вылет приложения при нажатии на EditText в PopupWindow

Сообщение andev » 24 апр 2012, 16:45

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

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Вылет приложения при нажатии на EditText в PopupWindow

Сообщение KamiSempai » 25 апр 2012, 07:26

Да, скорее всего это глюк прошивки. Пока думал как с ним бороться, в голову пришла другая реализация моего замысла (может быть еще более удачная).
Я просто хотел переделать QuickAction под диалоговое окно, что бы можно было вместо пунктов меню показывать Layout. Все хорошо, только с полями ввода такая вот проблема.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Ответить