Android开发——动态功能(五)自定义Dialog对话框

运行效果图:

模拟QQ退出登录界面的提示框。

点击退出登录出现提示框,点击取消,退出登录框,点击确认退出,退出软件。

Android开发——动态功能(五)自定义Dialog对话框_第1张图片

设计思路:

主界面:点击退出即可创建一个自定的mdialog提示框,并为提示框的按钮设置监听(为什么要在这里设置呢,是因为按钮监听进行的操作是对dialog本身进行的,如果在dialog自身类设置监听不好操作)。

mdialog类:设计一个layout布局文件,并掉用之。

mdialog布局:根据图片进行设计。

drawable文件:设置提示框的背景。

style:设置提示框的style。

代码示例:

MainActivity

package com.example.administrator.simulateqq;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;

import view.Mdialog;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //不显示系统的标题栏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);


    }
    /**
     * 设置退出账号按钮弹出对话框
     */
    public void OnExitDialog(View view)
    {
        final Mdialog mdialog = new Mdialog(this);  //实例化自定义对话框

        //给取消按钮设置监听事件
        mdialog.cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mdialog.isShowing()){
                    mdialog.dismiss();  //关闭对话框
                }
            }
        });

        //给确定按钮设置监听事件
        mdialog.ensure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mdialog.isShowing()){
                    mdialog.dismiss();      //关闭对话框
                    finish();       //关闭当前界面
                }
            }
        });
        mdialog.show();
    }
}

Mdialog

package com.example.administrator.simulateqq;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;

import view.Mdialog;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //不显示系统的标题栏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);


    }
    /**
     * 设置退出账号按钮弹出对话框
     */
    public void OnExitDialog(View view)
    {
        final Mdialog mdialog = new Mdialog(this);  //实例化自定义对话框

        //给取消按钮设置监听事件
        mdialog.cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mdialog.isShowing()){
                    mdialog.dismiss();  //关闭对话框
                }
            }
        });

        //给确定按钮设置监听事件
        mdialog.ensure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mdialog.isShowing()){
                    mdialog.dismiss();      //关闭对话框
                    finish();       //关闭当前界面
                }
            }
        });
        mdialog.show();
    }
}

mdialoglayout.xml



    
    
        
    
    
    
    
    
        
            
            

mdialog_bg.xml



    
    
    
    

    


styles.xml



    
    
    
    


 

需要打包的源码,请评论区留言!

你可能感兴趣的:(#,Android博文杂记,#,Android零基础学习)