我記得這個好像是看得不記得是那個軟件的寫法是這樣的,自己整理了下。
大致的意思就是點擊按鈕,彈出一個預先準備好的PopupWindow窗口。
接口:
public abstract interface MyPopup
{
public abstract void popAwindow(View paramView);
}
自定義按鈕:
public class PopuMenuTextButton extends Button
{
private MyPopup pwindow;
public PopuMenuTextButton(Context paramContext, AttributeSet paramAttributeSet)
{
super(paramContext, paramAttributeSet);
}
protected void onDetachedFromWindow()
{
if (this.pwindow != null)
this.pwindow.popAwindow(this);
super.onDetachedFromWindow();
}
public void setOnDetachedListener(MyPopup paramnl)
{
this.pwindow = paramnl;
}
}
使用:
private PopuMenuTextButton pbtn;
private PopupWindow pwindow;
/**
* 顯示PopupWindow 窗口 <功能詳細描述>
*/
public void showPop()
{
int i1 = -1;
if (upOrdown() == i1)
{
View localView1 = LayoutInflater.from(this).inflate(R.layout.layout_popup_calllog, null);
View localView2 = localView1.findViewById(R.id.popup_callLog_all);
View localView3 = localView1.findViewById(R.id.popup_callLog_miss);
View localView4 = localView1.findViewById(R.id.popup_callLog_incoming);
View localView5 = localView1.findViewById(R.id.popup_callLog_outgoing);
localView2.setOnClickListener(this);
localView3.setOnClickListener(this);
localView4.setOnClickListener(this);
localView5.setOnClickListener(this);
PopupWindow localPopupWindow1 = new PopupWindow(localView1, i1, i1);
this.pwindow = localPopupWindow1;
this.pwindow.showAsDropDown(this.pbtn);
}
}
@Override
public void popAwindow(View paramView)
{ //需要繼承MyPopup接口
upOrdown();
}