自定义简易确认取消Dialog

原创 2015年10月31日 10:05: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>
版权声明:本文为博主原创文章,转载请注明出处。博客首页:http://blog.csdn.net/u012975705。订阅:http://blog.csdn.net/u012975705/rss/list

相关文章推荐

Android dialog应用经验总结

1、网上说的很多,Android dialog实现的方法有两个一个是通过AlertDialog.Builder 初始化dialog 然后再showDialog另一个是通过将androidManifes...

android各种提示Dialog 弹出框

开发过程中 经常需要各种弹出框 用来做提示  或者 展示一些 数据信息。写了一个 DialogUtil , 话不多说 直接上代码 ,希望对大家有帮助。 public static Dialog g...

Android系统自带主题样式(android:theme),Android Dialog 系统样式

转载:http://stephen830.iteye.com/blog/1129203      http://blog.sina.com.cn/s/blog_3e333c4a0102vk0f.htm...

Androdi自定义对话框且带取消按钮与确认按钮的回调

1.先扩展android系统自带的Dialog,将布局与主题属性全抛出来,实现数据与视图分离: import android.app.Dialog; import android.content.Co...

安卓Dialog自定义大小及居中

AlertDialog dialog = new AlertDialog.Builder(TMDAgent.mMainActivity).create(); dialog.show(); dialog...
  • ithouse
  • ithouse
  • 2016年06月22日 20:31
  • 4188

【Android自定义View实战】之自定义项目通用的加载等待对话框LoadingDialog

在平时的Android开发中,我们难免会遇到像登陆.注册.获取数据这样的操作,而用的的网络状况不同,导致操作需要等待一定的时间,那么为了友好期间,我们需要给用户提供一个在操作完之后的一个友好的等待界面...

AlertDialog点击按钮确定或取消不消失

在Android开发中,AlertDialog的使用十分频繁的,有时候会碰到点击确定或取消后AlertDialog仍不消失的需求,但在Android的SDK中并没有给出接口来实现这一功能,故我们通过研...

一个自定义dialog提供确定和取消按钮的回调接口

public class MessageDialog { Context context; AlertDialog dialog; AlertDialog.Builder bu...

关于TimePickerDialog里的取消按钮

最近在做一个功能,需要用到时间选择器。但里面出现了一个问题,在模拟器(4.4)里,时间选择器显示的结果是只有一个“完成”的按钮,但在我的真机(4.1)里却多了个“取消”按钮。本来之前我是在onTime...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义简易确认取消Dialog
举报原因:
原因补充:

(最多只允许输入30个字)