【问题标题】:Android: setText() for TextView in PopupWindow not workingAndroid:PopupWindow 中 TextView 的 setText() 不起作用
【发布时间】:2011-08-10 22:10:48
【问题描述】:

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

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

有人知道这是怎么回事吗?谢谢-

【问题讨论】:

  • 您能否将您的答案发布为答案并接受?这样,如果其他人有相同的问题,他们可以更轻松地找到解决方案,并且保持未回答的问题列表干净。谢谢!

标签: android textview popupwindow


【解决方案1】:

我解决了这个问题。无论出于何种原因,您都需要调用 popup.getContentView().findViewById 而不仅仅是 findViewById (其中 popup 是您的 PopupWindow 对象)。我之前没有收到 NullPointerException,所以我不确定为什么这解决了问题,但确实解决了。

所以代码是这样的:

PopupWindow pw = new PopupWindow(你的布局和参数在这里);

((TextView)pw.getContentView().findViewById(R.id.my_textview)).setText(“你好”);

pw.showAtLocation(你的参数在这里);

【讨论】:

  • 例如:((TextView) popupWindow.getContentView().findViewById(R.id.popupTextview1)).setText("hello there");
【解决方案2】:

您将能够仅使用您之前为 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);
//...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多