gpt4 book ai didi

android - PopupWindow 无法在 InnerClass 的 onClick() 中显示

转载 作者:行者123 更新时间:2023-11-30 03:30:39 25 4
gpt4 key购买 nike

伙计们。我对 Android 中的 PopupWindow 有疑问。
我有2个Buttons,点击任何一个都会显示一个popupWindow,它是外部类中的一个成员变量。
两个popupWindow的内容和布局都不一样。
我像这样在 onClick 方法中更新 popipWindow 的内容:

    bt1.setOnClickListener(new OnClickListener{       
onClick(View v){
mPopupWin.setContentView(R.layout.layout_a);
});

bt2.setOnClickListener(new OnClickListener{
onClick(View v){
mPopupWin.setContentView(R.layout.layout_b);
});

当我第一次点击其中一个时,它工作,popupWindow 显示,但是当我点击另一个时,popupWindow 没有按预期显示(之前 mPopupWin 已被正确关闭,并且 contentView 不为 NULL,并且宽度/高度不为 0,我检查过...)。
当我再次单击第二个按钮时,弹出窗口正常显示。然后我尝试使用 AsycnTask 在 doInBackground 中设置 ContentView(),并在 onPostExecute() 中显示 popupWindow,一切正常。

我可以通过这种方式达到我的目的,但是我还是想知道第一种方式有什么问题。
希望你的帮助,谢谢你:)

最佳答案

我还没有机会测试它,但请尝试更改您的代码以使用 update()

 bt1.setOnClickListener(new OnClickListener{       
onClick(View v){
mPopupWin.setContentView(R.layout.layout_a);
mPopupWin.update();
});

bt2.setOnClickListener(new OnClickListener{
onClick(View v){
mPopupWin.setContentView(R.layout.layout_b);
mPopupWin.update();
});

According to the Docs

This method has no effect if called when the popup is showing.

你可能需要看看它是不是isShowing()在决定是否调用 update()

关于android - PopupWindow 无法在 InnerClass 的 onClick() 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17532215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com