Android自定义简易确认取消Dialog
jopen
10年前
转载请注明:http://blog.csdn.net/u012975705/article/details/49530733
SimpleConfirmDialog.java
public class SimpleConfirmDialog extends Dialog implements View.OnClickListener { //提示语 private TextView mSlogan; //取消按钮 private Button mCancel; //确认按钮 private Button mConfirm; // private MyCollectionActivity mActivity; private OnConfirmListener mListener; public SimpleConfirmDialog(Context context) { super(context, R.style.Theme_Light_FullScreenDialogAct); setContentView(R.layout.dialog_simple_confirm); initView(); initData(); initEvent(); } @Override public void show() { super.show(); // WindowManager m = mActivity.getWindowManager(); // Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用 // WindowManager.LayoutParams p = getWindow().getAttributes(); // 获取对话框当前的参数值 // p.height = 270; // p.width = 140; // getWindow().setAttributes(p); } /** * 初始化视图 */ private void initView() { mSlogan = (TextView) findViewById(R.id.simple_dialog_slogan); mCancel = (Button) findViewById(R.id.simple_dialog_cancel); mConfirm = (Button) findViewById(R.id.simple_dialog_confirm); } /** * 初始化控件、数据 */ private void initData() { } /** * 初始化事件 */ private void initEvent() { mCancel.setOnClickListener(this); mConfirm.setOnClickListener(this); } public void setClickListener(String slogan, OnConfirmListener mListener) { mSlogan.setText(slogan); this.mListener = mListener; } @Override public void onClick(View view) { switch (view.getId()) { case R.id.simple_dialog_cancel: cancel(); break; case R.id.simple_dialog_confirm: mListener.onConfirm(); break; default: break; } } public interface OnConfirmListener { void onConfirm(); } }style:
<style name="BaseDialog" parent="@android:style/Theme.Dialog" /> <style name="Theme.Light.FullScreenDialogAct" parent="@style/BaseDialog"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:textSize">16.0sp</item> <item name="android:textColor">#ff555555</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowSoftInputMode">adjustPan</item> </style>
xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="250dp" android:layout_height="wrap_content" android:background="@drawable/bg_simple_dialog" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="20dp"> <TextView android:id="@+id/simple_dialog_slogan" style="@style/TextTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="提示语" /> </LinearLayout> <View android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@color/background" android:layout_width="match_parent" android:layout_height="1dp"/> <LinearLayout android:padding="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_marginRight="5dp" android:gravity="center" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <Button style="@style/TextNormal" android:text="取消" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:id="@+id/simple_dialog_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bg_dialog_button_cancel" /> </LinearLayout> <LinearLayout android:layout_marginLeft="5dp" android:gravity="center" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <Button android:textColor="@color/white" style="@style/TextTitle" android:text="确定" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:id="@+id/simple_dialog_confirm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bg_dialog_button_confirm" /> </LinearLayout> </LinearLayout> </LinearLayout>