自定义全屏Dialog
16lz
2021-01-23
关键在于设置Style
调用
<style name="Dialog_Fullscreen"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">false</item> <item name="android:windowFullscreen">false</item> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">true</item> </style>
public class SpinnerDialog extends Dialog {private Context mContext;private ArrayAdapter<CharSequence> mAdapter = null;private OnConfirmListener mListener;private View mRoot;public SpinnerDialog(Context context) {this(context, R.style.Dialog_Fullscreen);}public SpinnerDialog(Context context, int theme) {super(context, R.style.Dialog_Fullscreen);mContext = context;}public void setSpinnerData(int resId) {mAdapter = ArrayAdapter.createFromResource(mContext, resId,android.R.layout.simple_spinner_item);}public void setSpinnerData(ArrayAdapter<CharSequence> adapter) {this.mAdapter = adapter;}private View getView() {mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// get layoutView v = LayoutInflater.from(mContext).inflate(R.layout.spinner_dialog,null);// bind datafinal Spinner spinner = (Spinner) v.findViewById(R.id.item_selector);spinner.setAdapter(mAdapter);// set click eventv.findViewById(R.id.btnOK).setOnClickListener(new View.OnClickListener() {public void onClick(View v) {if (mListener != null) {int idx = spinner.getSelectedItemPosition();String val = spinner.getSelectedItem().toString();mListener.onConfirm(idx, val);}dismiss();}});v.findViewById(R.id.btnCancel).setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cancel();}});return v;}public void setOnConfirmListener(OnConfirmListener listener) {mListener = listener;}@Overrideprotected void onStart() {super.onStart();if (mRoot == null) {mRoot = getView();setContentView(mRoot);}}/** * Interface definition for a callback to be invoked when press OK button. */public interface OnConfirmListener {public void onConfirm(int idx, String value);}}
调用
SpinnerDialog dlg = new SpinnerDialog(this);dlg.setSpinnerData(R.array.xxx);dlg.setOnConfirmListener(listener);
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer