内部类:

interfacePopupWindow.OnDismissListenerListener that is called when this popup window is dismissed. 
xml attributes:

Attribute NameRelated MethodDescription
android:popupBackgroundsetBackgroundDrawable(Drawable)The background to use for the popup window. 
android:popupElevationsetElevation(float)Window elevation to use for the popup window.                           

常量:

intINPUT_METHOD_FROM_FOCUSABLEMode for setInputMethodMode(int): the requirements for the input method should be based on the focusability of the popup.                          
intINPUT_METHOD_NEEDEDMode for setInputMethodMode(int): this popup always needs to work with an input method, regardless of whether it is focusable.                          
intINPUT_METHOD_NOT_NEEDEDMode for setInputMethodMode(int): this popup never needs to work with an input method, regardless of whether it is focusable.                          

PopupWindow(Context context)

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(Context context, AttributeSet attrs)

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(Context context, AttributeSet attrs, int defStyleAttr)

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Create a new, empty, non focusable popup window of dimension (0,0).

PopupWindow()

Create a new empty, non focusable popup window of dimension (0,0).

PopupWindow(View contentView)

Create a new non focusable popup window which can display the contentView.

PopupWindow(int width, int height)

Create a new empty, non focusable popup window.

PopupWindow(View contentView, int width, int height)

Create a new non focusable popup window which can display the contentView.

PopupWindow(View contentView, int width, int height, boolean focusable)

Create a new popup window which can display the contentView.                          


voiddismiss()Disposes of the popup window.
intgetAnimationStyle()

Return the animation style to use the popup appears and disappears

DrawablegetBackground()Return the drawable used as the popup window's background.
ViewgetContentView()

Return the view used as the content of the popup window.

floatgetElevation()
intgetHeight()Returns the popup's height MeasureSpec.
intgetInputMethodMode()Return the current value insetInputMethodMode(int).
intgetMaxAvailableHeight(View anchor)Returns the maximum height that is available for the popup to be completely shown.
intgetMaxAvailableHeight(View anchor, int yOffset)Returns the maximum height that is available for the popup to be completely shown.
booleangetOverlapAnchor()Returns whether the popup window should overlap its anchor view when displayed as a drop-down.
intgetSoftInputMode()Returns the current value insetSoftInputMode(int).
intgetWidth()Returns the popup's width MeasureSpec.
intgetWindowLayoutType()Returns the layout type for this window.
booleanisAboveAnchor()Indicates whether the popup is showing above (the y coordinate of the popup's bottom is less than the y coordinate of the anchor) or below the anchor view (the y coordinate of the popup is greater than y coordinate of the anchor's bottom).
booleanisAttachedInDecor()

Indicates whether the popup window will be attached in the decor frame of its parent window.

booleanisClippingEnabled()

Indicates whether clipping of the popup window is enabled.

booleanisFocusable()

Indicate whether the popup window can grab the focus.

booleanisOutsideTouchable()

Indicates whether the popup window will be informed of touch events outside of its window.

booleanisShowing()

Indicate whether this popup window is showing on screen.

booleanisSplitTouchEnabled()

Indicates whether the popup window supports splitting touches.

booleanisTouchable()

Indicates whether the popup window receives touch events.

voidsetAnimationStyle(int animationStyle)

Change the animation style resource for this popup.

voidsetAttachedInDecor(boolean enabled)

This will attach the popup window to the decor frame of the parent window to avoid overlaping with screen decorations like the navigation bar.

voidsetBackgroundDrawable(Drawable background)Specifies the background drawable for this popup window.
voidsetClippingEnabled(boolean enabled)

Allows the popup window to extend beyond the bounds of the screen.

voidsetContentView(View contentView)

Change the popup's content.

voidsetElevation(float elevation)Specifies the elevation for this popup window.
voidsetEnterTransition(Transition enterTransition)
voidsetExitTransition(Transition exitTransition)
voidsetFocusable(boolean focusable)

Changes the focusability of the popup window.

voidsetHeight(int height)Sets the popup's height MeasureSpec.
voidsetIgnoreCheekPress()Set the flag on popup to ignore cheek press events; by default this flag is set to false which means the popup will not ignore cheek press dispatch events.
voidsetInputMethodMode(int mode)Control how the popup operates with an input method: one ofINPUT_METHOD_FROM_FOCUSABLE,INPUT_METHOD_NEEDED, orINPUT_METHOD_NOT_NEEDED.
voidsetOnDismissListener(PopupWindow.OnDismissListener onDismissListener)Sets the listener to be called when the window is dismissed.
voidsetOutsideTouchable(boolean touchable)

Controls whether the pop-up will be informed of touch events outside of its window.

voidsetOverlapAnchor(boolean overlapAnchor)Sets whether the popup window should overlap its anchor view when displayed as a drop-down.
voidsetSoftInputMode(int mode)Sets the operating mode for the soft input area.
voidsetSplitTouchEnabled(boolean enabled)

Allows the popup window to split touches across other windows that also support split touch.

voidsetTouchInterceptor(View.OnTouchListener l)Set a callback for all touch events being dispatched to the popup window.
voidsetTouchable(boolean touchable)

Changes the touchability of the popup window.

voidsetWidth(int width)Sets the popup's width MeasureSpec.
voidsetWindowLayoutMode(int widthSpec, int heightSpec)This method was deprecated in API level 23. Use setWidth(int) andsetHeight(int).
voidsetWindowLayoutType(int layoutType)Set the layout type for this window.
voidshowAsDropDown(View anchor, int xoff, int yoff, int gravity)Displays the content view in a popup window anchored to the corner of another view.
voidshowAsDropDown(View anchor, int xoff, int yoff)Display the content view in a popup window anchored to the bottom-left corner of the anchor view offset by the specified x and y coordinates.
voidshowAsDropDown(View anchor)Display the content view in a popup window anchored to the bottom-left corner of the anchor view.
voidshowAtLocation(View parent, int gravity, int x, int y)

Display the content view in a popup window at the specified location.

voidupdate(View anchor, int width, int height)Updates the position and the dimension of the popup window.
voidupdate(int x, int y, int width, int height)Updates the position and the dimension of the popup window.
voidupdate(View anchor, int xoff, int yoff, int width, int height)Updates the position and the dimension of the popup window.
voidupdate()Updates the state of the popup window, if it is currently being displayed, from the currently set state.
voidupdate(int x, int y, int width, int height, boolean force)Updates the position and the dimension of the popup window.
voidupdate(int width, int height)Updates the dimension of the popup window.                          

2、demo

package com.james.popupwindow;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.WindowManager;import android.widget.AdapterView;import android.widget.Button;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.PopupWindow;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private Button btnBelowWindow;    private Button btnAboveWindow;    private Button btnPopupMenu;    private Button btnPopupListView;    private PopupWindow popupWindow;    private PopupWindow popupWindow2;    private PopupWindow popupWindow3;    private PopupWindow popupWindow4;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnBelowWindow = (Button) findViewById(R.id.id_btn_below_window);        btnAboveWindow = (Button) findViewById(R.id.id_btn_above_window);        btnPopupMenu = (Button) findViewById(R.id.id_btn_popup_menu);        btnPopupListView = (Button) findViewById(R.id.id_btn_pop_list_view);        btnBelowWindow.setOnClickListener(this);        btnAboveWindow.setOnClickListener(this);        btnPopupMenu.setOnClickListener(this);        btnPopupListView.setOnClickListener(this);        View view1 = getLayoutInflater().inflate(R.layout.item_popup,null);        popupWindow = new PopupWindow();        popupWindow.setContentView(view1);        int width = LinearLayout.LayoutParams.WRAP_CONTENT;        int height = LinearLayout.LayoutParams.WRAP_CONTENT;        popupWindow.setWidth(width);        popupWindow.setHeight(height);        //点击空白,消失        popupWindow.setTouchable(true);        popupWindow.setOutsideTouchable(true);        popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(),(Bitmap) null));        View topView = getLayoutInflater().inflate(R.layout.item_popup2,null);        popupWindow2 = new PopupWindow();        popupWindow2.setContentView(topView);        popupWindow2.setWidth(width);        popupWindow2.setHeight(height);        popupWindow2.setTouchable(true);        popupWindow2.setOutsideTouchable(true);        popupWindow2.setBackgroundDrawable(new BitmapDrawable(getResources(),(Bitmap)null));        View menuView = getLayoutInflater().inflate(R.layout.item_popup_menu,null);        popupWindow3 = new PopupWindow();        popupWindow3.setContentView(menuView);        popupWindow3.setWidth(width);        popupWindow3.setHeight(height);        popupWindow3.setTouchable(true);        popupWindow3.setOutsideTouchable(true);        popupWindow3.setBackgroundDrawable(new BitmapDrawable(getResources(),(Bitmap)null));        List stringList = new ArrayList<>();        for(int i=0;i<30;i++){            stringList.add("item:"+i);        }        View listView = getLayoutInflater().inflate(R.layout.item_popup_list,null);        ListView listView1 = (ListView) listView.findViewById(R.id.id_list_view);        ListViewAdapter listViewAdapter = new ListViewAdapter(stringList);        listView1.setAdapter(listViewAdapter);        popupWindow4 = new PopupWindow();        popupWindow4.setContentView(listView);        popupWindow4.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);        popupWindow4.setHeight(height);        popupWindow4.setTouchable(true);        popupWindow4.setOutsideTouchable(true);        popupWindow4.setBackgroundDrawable(new BitmapDrawable(getResources(),(Bitmap)null));        popupWindow4.setOnDismissListener(new PopupWindow.OnDismissListener() {            @Override            public void onDismiss() {                backgroundAlpha(MainActivity.this, 1f);            }        });        listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                Toast.makeText(MainActivity.this,"--i:"+i,Toast.LENGTH_SHORT).show();                if(popupWindow4.isShowing()){                    popupWindow4.dismiss();                }            }        });    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.id_btn_below_window:                if(popupWindow.isShowing()){                    popupWindow.dismiss();                }else {                    popupWindow.showAsDropDown(view);                }                break;            case R.id.id_btn_above_window:                if(popupWindow2.isShowing()){                    popupWindow2.dismiss();                }else {                    int height = getResources().getDrawable(R.mipmap.pop_bg2).getIntrinsicHeight();                    int btnHeight = view.getHeight();                    popupWindow2.showAsDropDown(view,0,-(height+ btnHeight));                }                break;            case R.id.id_btn_popup_menu:                if(popupWindow3.isShowing()){                    popupWindow3.dismiss();                }else {                    popupWindow3.showAsDropDown(view);                }                break;            case R.id.id_btn_pop_list_view:                if(popupWindow4.isShowing()){                    popupWindow4.dismiss();                }else {                    ColorDrawable dw = new ColorDrawable(0x00000000);                    //设置SelectPicPopupWindow弹出窗体的背景                    popupWindow4.setBackgroundDrawable(dw);                    backgroundAlpha(this,0.5f);//0.0-1.0                    popupWindow4.showAsDropDown(view);                }                break;        }    }    /**     * 设置添加屏幕的背景透明度     * @param bgAlpha     */    public void backgroundAlpha(Activity context, float bgAlpha)    {        WindowManager.LayoutParams lp = context.getWindow().getAttributes();        lp.alpha = bgAlpha;        context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);        context.getWindow().setAttributes(lp);    }}
package com.james.popupwindow;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;/** * Created by Administrator on 2016/12/4 0004. */public class ListViewAdapter extends BaseAdapter {    private List stringList;    public ListViewAdapter(List stringList) {        this.stringList = stringList;    }    @Override    public int getCount() {        return stringList.size();    }    @Override    public Object getItem(int i) {        return stringList.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        ViewHolder viewHolder = null;        if(view == null){            view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_text_view,viewGroup,false);            viewHolder = new ViewHolder(view);            view.setTag(viewHolder);        }else {            viewHolder = (ViewHolder) view.getTag();        }        viewHolder.itemName.setText(stringList.get(i));        return view;    }    private class ViewHolder {        TextView itemName;        public ViewHolder(View view) {            itemName = (TextView) view.findViewById(R.id.id_tv_textview);        }    }}

activity_main.xm:

<?xml version="1.0" encoding="utf-8"?>    

item_popup.xml:

<?xml version="1.0" encoding="utf-8"?>        
item_popup2.xml:

<?xml version="1.0" encoding="utf-8"?>        
item_popup_list.xml:

<?xml version="1.0" encoding="utf-8"?>    
item_popup_menu.xml:

<?xml version="1.0" encoding="utf-8"?>                                                                                                                        

item_text_view.xml:

<?xml version="1.0" encoding="utf-8"?>    
menu_pop_bg.xml:drawable文件夹下

<?xml version="1.0" encoding="utf-8"?>            

3、高级,封装

package com.example.zhouwei.library;import android.content.Context;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Build;import android.support.annotation.RequiresApi;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.PopupWindow;/** * * 自定义PopWindow类,封装了PopWindow的一些常用属性,用Builder模式支持链式调用 * Created by zhouwei on 16/11/28. */public class CustomPopWindow {    private Context mContext;    private int mWidth;    private int mHeight;    private boolean mIsFocusable = true;    private boolean mIsOutside = true;    private int mResLayoutId = -1;    private View mContentView;    private PopupWindow mPopupWindow;    private int mAnimationStyle = -1;    private boolean mClippEnable = true;//default is true    private boolean mIgnoreCheekPress = false;    private int mInputMode = -1;    private PopupWindow.OnDismissListener mOnDismissListener;    private int mSoftInputMode = -1;    private boolean mTouchable = true;//default is ture    private View.OnTouchListener mOnTouchListener;    private CustomPopWindow(Context context){        mContext = context;    }    public int getWidth() {        return mWidth;    }    public int getHeight() {        return mHeight;    }    /**     *     * @param anchor     * @param xOff     * @param yOff     * @return     */    public CustomPopWindow showAsDropDown(View anchor, int xOff, int yOff){        if(mPopupWindow!=null){            mPopupWindow.showAsDropDown(anchor,xOff,yOff);        }        return this;    }    public CustomPopWindow showAsDropDown(View anchor){        if(mPopupWindow!=null){            mPopupWindow.showAsDropDown(anchor);        }        return this;    }    @RequiresApi(api = Build.VERSION_CODES.KITKAT)    public CustomPopWindow showAsDropDown(View anchor, int xOff, int yOff, int gravity){        if(mPopupWindow!=null){            mPopupWindow.showAsDropDown(anchor,xOff,yOff,gravity);        }        return this;    }    /**     * 相对于父控件的位置(通过设置Gravity.CENTER,下方Gravity.BOTTOM等 ),可以设置具体位置坐标     * @param parent 父控件     * @param gravity     * @param x the popup's x location offset     * @param y the popup's y location offset     * @return     */    public CustomPopWindow showAtLocation(View parent, int gravity, int x, int y){        if(mPopupWindow!=null){            mPopupWindow.showAtLocation(parent,gravity,x,y);        }        return this;    }    /**     * 添加一些属性设置     * @param popupWindow     */    private void apply(PopupWindow popupWindow){        popupWindow.setClippingEnabled(mClippEnable);        if(mIgnoreCheekPress){            popupWindow.setIgnoreCheekPress();        }        if(mInputMode!=-1){            popupWindow.setInputMethodMode(mInputMode);        }        if(mSoftInputMode!=-1){            popupWindow.setSoftInputMode(mSoftInputMode);        }        if(mOnDismissListener!=null){            popupWindow.setOnDismissListener(mOnDismissListener);        }        if(mOnTouchListener!=null){            popupWindow.setTouchInterceptor(mOnTouchListener);        }        popupWindow.setTouchable(mTouchable);    }    private PopupWindow build(){        if(mContentView == null){            mContentView = LayoutInflater.from(mContext).inflate(mResLayoutId,null);        }        if(mWidth != 0 && mHeight!=0 ){            mPopupWindow = new PopupWindow(mContentView,mWidth,mHeight);        }else{            mPopupWindow = new PopupWindow(mContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);        }        if(mAnimationStyle!=-1){            mPopupWindow.setAnimationStyle(mAnimationStyle);        }        apply(mPopupWindow);//设置一些属性        mPopupWindow.setFocusable(mIsFocusable);        mPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));        mPopupWindow.setOutsideTouchable(mIsOutside);        if(mWidth == 0 || mHeight == 0){            mPopupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);            //如果外面没有设置宽高的情况下,计算宽高并赋值            mWidth = mPopupWindow.getContentView().getMeasuredWidth();            mHeight = mPopupWindow.getContentView().getMeasuredHeight();        }        mPopupWindow.update();        return mPopupWindow;    }    /**     * 关闭popWindow     */    public void dissmiss(){        if(mPopupWindow!=null){            mPopupWindow.dismiss();        }    }    public static class PopupWindowBuilder{        private CustomPopWindow mCustomPopWindow;        public PopupWindowBuilder(Context context){            mCustomPopWindow = new CustomPopWindow(context);        }        public PopupWindowBuilder size(int width,int height){            mCustomPopWindow.mWidth = width;            mCustomPopWindow.mHeight = height;            return this;        }        public PopupWindowBuilder setFocusable(boolean focusable){            mCustomPopWindow.mIsFocusable = focusable;            return this;        }        public PopupWindowBuilder setView(int resLayoutId){            mCustomPopWindow.mResLayoutId = resLayoutId;            mCustomPopWindow.mContentView = null;            return this;        }        public PopupWindowBuilder setView(View view){            mCustomPopWindow.mContentView = view;            mCustomPopWindow.mResLayoutId = -1;            return this;        }        public PopupWindowBuilder setOutsideTouchable(boolean outsideTouchable){            mCustomPopWindow.mIsOutside = outsideTouchable;            return this;        }        /**         * 设置弹窗动画         * @param animationStyle         * @return         */        public PopupWindowBuilder setAnimationStyle(int animationStyle){            mCustomPopWindow.mAnimationStyle = animationStyle;            return this;        }        public PopupWindowBuilder setClippingEnable(boolean enable){            mCustomPopWindow.mClippEnable =enable;            return this;        }        public PopupWindowBuilder setIgnoreCheekPress(boolean ignoreCheekPress){            mCustomPopWindow.mIgnoreCheekPress = ignoreCheekPress;            return this;        }        public PopupWindowBuilder setInputMethodMode(int mode){            mCustomPopWindow.mInputMode = mode;            return this;        }        public PopupWindowBuilder setOnDissmissListener(PopupWindow.OnDismissListener onDissmissListener){            mCustomPopWindow.mOnDismissListener = onDissmissListener;            return this;        }        public PopupWindowBuilder setSoftInputMode(int softInputMode){            mCustomPopWindow.mSoftInputMode = softInputMode;            return this;        }        public PopupWindowBuilder setTouchable(boolean touchable){            mCustomPopWindow.mTouchable = touchable;            return this;        }        public PopupWindowBuilder setTouchIntercepter(View.OnTouchListener touchIntercepter){            mCustomPopWindow.mOnTouchListener = touchIntercepter;            return this;        }        public CustomPopWindow create(){            //构建PopWindow            mCustomPopWindow.build();            return mCustomPopWindow;        }    }}
使用:

package com.example.zhouwei.simple;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import android.widget.Toast;import com.example.zhouwei.library.CustomPopWindow;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private TextView mButton1,mButton2,mButton3,mButton4;    private CustomPopWindow mCustomPopWindow;    private CustomPopWindow mListPopWindow;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mButton1 = (TextView) findViewById(R.id.button1);        mButton1.setOnClickListener(this);        mButton2 = (TextView) findViewById(R.id.button2);        mButton2.setOnClickListener(this);        mButton3 = (TextView) findViewById(R.id.button3);        mButton3.setOnClickListener(this);        mButton4 = (TextView) findViewById(R.id.button4);        mButton4.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.button1:                showPopBottom();                break;            case R.id.button2:                showPopTop();                break;            case R.id.button3:                showPopMenu();                break;            case R.id.button4:                showPopListView();                break;        }    }    private void showPopBottom(){        CustomPopWindow popWindow = new CustomPopWindow.PopupWindowBuilder(this)                .setView(R.layout.pop_layout1)                .setFocusable(true)                .setOutsideTouchable(true)                .create()                .showAsDropDown(mButton1,0,10);    }    private void showPopTop(){      CustomPopWindow popWindow = new CustomPopWindow.PopupWindowBuilder(this)              .setView(R.layout.pop_layout2)              .create();      popWindow .showAsDropDown(mButton2,0,  - (mButton2.getHeight() + popWindow.getHeight()));      //popWindow.showAtLocation(mButton1, Gravity.NO_GRAVITY,0,0);    }    private void showPopMenu(){        View contentView = LayoutInflater.from(this).inflate(R.layout.pop_menu,null);        //处理popWindow 显示内容        handleLogic(contentView);        //创建并显示popWindow        mCustomPopWindow= new CustomPopWindow.PopupWindowBuilder(this)                .setView(contentView)                .create()                .showAsDropDown(mButton3,0,20);    }    private void showPopListView(){        View contentView = LayoutInflater.from(this).inflate(R.layout.pop_list,null);        //处理popWindow 显示内容        handleListView(contentView);        //创建并显示popWindow        mListPopWindow= new CustomPopWindow.PopupWindowBuilder(this)                .setView(contentView)                .size(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)//显示大小                .create()                .showAsDropDown(mButton4,0,20);    }    private void handleListView(View contentView){        RecyclerView recyclerView = (RecyclerView) contentView.findViewById(R.id.recyclerView);        LinearLayoutManager manager = new LinearLayoutManager(this);        manager.setOrientation(LinearLayoutManager.VERTICAL);        recyclerView.setLayoutManager(manager);        MyAdapter adapter = new MyAdapter();        adapter.setData(mockData());        recyclerView.setAdapter(adapter);        adapter.notifyDataSetChanged();    }    private List mockData(){        List data = new ArrayList<>();        for (int i=0;i<100;i++){            data.add("Item:"+i);        }        return data;    }    /**     * 处理弹出显示内容、点击事件等逻辑     * @param contentView     */    private void handleLogic(View contentView){        View.OnClickListener listener = new View.OnClickListener() {            @Override            public void onClick(View v) {                if(mCustomPopWindow!=null){                    mCustomPopWindow.dissmiss();                }                String showContent = "";                switch (v.getId()){                    case R.id.menu1:                        showContent = "点击 Item菜单1";                        break;                    case R.id.menu2:                        showContent = "点击 Item菜单2";                        break;                    case R.id.menu3:                        showContent = "点击 Item菜单3";                        break;                    case R.id.menu4:                        showContent = "点击 Item菜单4";                        break;                    case R.id.menu5:                        showContent = "点击 Item菜单5" ;                        break;                }                Toast.makeText(MainActivity.this,showContent,Toast.LENGTH_SHORT).show();            }        };        contentView.findViewById(R.id.menu1).setOnClickListener(listener);        contentView.findViewById(R.id.menu2).setOnClickListener(listener);        contentView.findViewById(R.id.menu3).setOnClickListener(listener);        contentView.findViewById(R.id.menu4).setOnClickListener(listener);        contentView.findViewById(R.id.menu5).setOnClickListener(listener);    }}

来源于:https://github.com/pinguo-zhouwei/CustomPopwindow

更多相关文章

  1. Android 中 EditText 的 inputType 属性及其他常用属性详解
  2. Android studio gradle 生成字段属性值
  3. 在AndroidManifest.xml文件中的android:windowSoftInputMode属性
  4. Android 获取AndroidManifest.xml文件versionCode,versionName属
  5. ImageView的属性android:scaleType,即ImageView.setSca...
  6. Android TabLayout导航条属性的设置
  7. android下拉菜单spinner的使用方法
  8. Android——ImageButton【图片按钮】的点击事件与属性

随机推荐

  1. Android上对非标准RSS进行解析之后的反思
  2. 《Android(安卓)Studio实用指南》4.27 使
  3. 为什么Android将掀起一场手机领域的狂风(
  4. No suitable java found.In order to pro
  5. 浅谈应用工厂模式和单例在Android中实现
  6. Android(安卓)中的进程
  7. Android-几行代码通知系统自动安装apk
  8. 在android的spinner中,实现key(id)和Value
  9. 【Android学习总结】之eclipse工程目录结
  10. android显示RGB565数据图像