As follows:
Core code:
Package Com.zms.actionsheet;import Android.app.dialog;import Android.content.context;import Android.content.dialoginterface.oncancellistener;import Android.view.gravity;import Android.view.LayoutInflater; Import Android.view.view;import Android.view.view.onclicklistener;import Android.view.window;import Android.view.windowmanager;import Android.widget.linearlayout;import Android.widget.textview;public Class Actionsheet {public interface onactionsheetselected {void OnClick (int whichbutton); } private Actionsheet () {} public static Dialog Showsheet (context context, final onactionsheetselected Actionshe etselected, Oncancellistener Cancellistener) {final Dialog dlg = new Dialog (cont ext, r.style.actionsheet); Layoutinflater Inflater = (layoutinflater) context.getsystemservice (Context.layout_inflater_service); LinearLayout layout = (linearlayout) inflater.inflate (r.layout.actionsheet, NULL); Final int cfulLfillwidth = 10000; Layout.setminimumwidth (Cfullfillwidth); TextView mcontent = (TextView) Layout.findviewbyid (r.id.content); TextView Mcancel = (TextView) Layout.findviewbyid (r.id.cancel); Mcontent.setonclicklistener (New Onclicklistener () {@Override public void OnClick (View v) { Actionsheetselected.onclick (0); Dlg.dismiss (); } }); Mcancel.setonclicklistener (New Onclicklistener () {@Override public void OnClick (View v) { TODO auto-generated Method Stub Actionsheetselected.onclick (1); Dlg.dismiss (); } }); Window w = Dlg.getwindow (); Windowmanager.layoutparams LP = W.getattributes (); lp.x = 0; Final int cmakebottom =-1000; LP.Y = Cmakebottom; lp.gravity = Gravity.bottom; DLG.ONWINDOWATTRIBUTESCHANGED (LP); Dlg.setcanceledontouchoutside (False); if (Cancellistener! = null) Dlg.setoncancellistener (Cancellistener); Dlg.setcontentview (layout); Dlg.show (); return dlg; }}
Reprint Please specify source: Zhou Mushi's CSDN blog http://blog.csdn.net/zhoumushui
my github: Zhou Mushi's GitHub Https://github.com/zhoumushui
Android Custom Popupwindow iOS-like Actionsheet