当前位置:首页 > 开发 > 移动开发 > 正文

自定义全屏Dialog

发表于: 2012-04-20   作者:dai_lm   来源:转载   浏览次数:
摘要: 关键在于设置Style <style name="Dialog_Fullscreen"> <item name="android:windowBackground">@android:color/transparent</item> <item name=&quo
关键在于设置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 layout
		View v = LayoutInflater.from(mContext).inflate(R.layout.spinner_dialog,
				null);

		// bind data
		final Spinner spinner = (Spinner) v.findViewById(R.id.item_selector);
		spinner.setAdapter(mAdapter);

		// set click event
		v.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;
	}

	@Override
	protected 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);

自定义全屏Dialog

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
使用Activity伪造Dialog的时候出现不能全屏的问题,如图: 在对话框后边有一个黑色的背景。 解决方
先看图: 布局search_dialog.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayo
先看图: 布局search_dialog.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayo
先看图: 布局search_dialog.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayo
代码如下: SearchDialog.java import android.app.Dialog; import android.content.Context; impor
Android自定义Dialog - And.He - 博客园 http://www.cnblogs.com/and_he/archive/2011/09/16/217871
利用mobiscroll 的select 插件自定义 弹出的对话框,这个仅供自己学习 例子 <!DOCTYPE html>
转于:http://www.cnblogs.com/and_he/archive/2011/09/16/2178716.html -------------------------
 Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如onCreateDialog(int),onPrepa
利用mobiscroll 的select 插件自定义 弹出的对话框,这个仅供自己学习 例子 <!DOCTYPE html>
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号