Android:PopupWindow中TextView的setText()不起作用

时间:2011-08-10 22:10:48

标签: android textview popupwindow

基本上,我在布局中有一个TextView,用于PopupWindow。当用户点击按钮时,我会显示这个PopupWindow;我希望能够在按钮单击时动态更改PopupWindow中的文本。但是,findViewById(my_textview).setText()似乎没有做任何事情,确实导致单击按钮时PopupWindow不再显示。

我可以从布局xml中设置文本。

任何人都知道这是怎么回事?谢谢 -

2 个答案:

答案 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);
//...