Android: setText () для TextView в PopupWindow не работает - PullRequest
9 голосов
/ 11 августа 2011

В принципе, у меня есть TextView в макете, который я использую для PopupWindow.Я показываю это PopupWindow, когда пользователь нажимает кнопку;Я хочу иметь возможность динамически изменять текст в всплывающем окне при нажатии кнопки.Однако findViewById (my_textview) .setText (), похоже, ничего не делает, и действительно заставляет PopupWindow больше не показывать, когда я нажимаю кнопку.*

Кто-нибудь знает, что с этим?* 1005 Благодарения и *

Ответы [ 2 ]

16 голосов
/ 19 июля 2012

Я решил проблему. По какой-то причине вам нужно вызывать popup.getContentView (). FindViewById, а не просто findViewById (где popup - ваш объект PopupWindow). Я не получал NullPointerException раньше, поэтому я не совсем уверен, почему это решило проблему, но это произошло.

Итак, код выглядит примерно так:

PopupWindow pw = new PopupWindow (ваш макет и параметры здесь);

((TextView) pw.getContentView (). FindViewById (R.id.my_textview)). SetText ("привет там");

pw.showAtLocation (ваши параметры здесь);

1 голос
/ 05 апреля 2012

Вы сможете найти представления с помощью «findViewById», только используя представление, которое вы надули в popupWindow до

, как это

private View viewPopUp;
private PopupWindow windowPopUp;
//...
//form_popup is the template to the popup
viewPopUp = mContext.getLayoutInflater().inflate(R.layout.form_popup, null); 
windowPopUp = new PopupWindow(viewPopUp, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
//...
viewPopUp.findViewById(R.id.popupTopTitle);
viewPopUp.findViewById(R.id.popupMiddleMsg);
//...
...