Отладка следующего кода Android, всплывающее окно - PullRequest
0 голосов
/ 10 января 2012
public class Offer_Popup extends Activity {


 public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.offer_popup);

        //newly added code, the window popup
     LayoutInflater inflater = (LayoutInflater)
                   this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      PopupWindow pw = new PopupWindow(
                   inflater.inflate(R.layout.popup_example, null, false), 
                   100, 
                   100, 
                   true);

     pw.showAtLocation(this.findViewById(R.id.relativeLayout_popup), Gravity.CENTER, 0, 0);}       
            /////////////////////

popup_example.xml

     <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dip"
    android:text="Test Pop-Up"
  />

</LinearLayout>

В DDMS отображается последняя строка. ShowAtLocation - это ошибка.
В нем говорится, что невозможно добавить окно - нулевой токен недействителен.android.view.WindowManagerBadToken.Перед добавлением всплывающего окна программа работает нормально.Но после всплывающего кода он вылетел.о каком плохом жетоне идет речь?

Ответы [ 2 ]

1 голос
/ 10 января 2012

Для всплывающего окна требуется начальное окно, из которого можно всплыть.Казалось бы, у Activity автоматически есть Window, но это не так с самого начала.У данного занятия нет активного окна до onAttachedToWindow().В настоящее время вы можете добавить PopupWindow к окну, потому что есть окно.

Если вы переместите код в onAttachedToWindow (), он должен работать как задумано или, по крайней мере, полностью вызвать другую ошибку.

Надеюсь, это поможет,

FuzzicalLogic

0 голосов
/ 10 января 2012

Вы уверены, что "popup_example" существует и правильно определен в файле макета?

Пожалуйста, проверьте файл еще раз.И еще раз проверьте значение pw после того, как вы его «надули».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...