基本上,我在布局中有一个TextView,用于PopupWindow。当用户点击按钮时,我会显示这个PopupWindow;我希望能够在按钮单击时动态更改PopupWindow中的文本。但是,findViewById(my_textview).setText()似乎没有做任何事情,确实导致单击按钮时PopupWindow不再显示。
我可以从布局xml中设置文本。
任何人都知道这是怎么回事?谢谢 -
答案 0 :(得分:16)
我解决了这个问题。无论出于何种原因,您需要调用popup.getContentView()。findViewById而不仅仅是findViewById(其中popup是您的PopupWindow对象)。我之前没有得到NullPointerException,所以我不确定为什么这会解决问题,但确实如此。
所以代码就像:
PopupWindow pw = new PopupWindow(你的布局和params在这里);
((TextView)pw.getContentView()。findViewById(R.id.my_textview))。setText(“hello there”);
pw.showAtLocation(你的params在这里);
答案 1 :(得分:1)
只能使用之前弹出popupWindow的视图,使用“findViewById”查找视图
像这样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);
//...