栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Dialog练习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dialog练习

文章目录
  • 1、项目层级
  • 2、代码
      • (1)styles.xml:给Dialog设置一个风格主题(基本都是用这个主题)无边框全透明背景
      • (2)activity_main.xml
      • (3)mydialog.xml:给自定的Dialog设置自定义的 xml界面
      • (4)MainActivity
      • (5)MyDialog:继承Dialog实现自定义的Dialog
  • 3、效果图

1、项目层级

2、代码 (1)styles.xml:给Dialog设置一个风格主题(基本都是用这个主题)无边框全透明背景


    
    

    
    


(2)activity_main.xml



    
(3)mydialog.xml:给自定的Dialog设置自定义的 xml界面



    

    


(4)MainActivity
package com.zz.dialogtest2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button1 = (Button) findViewById(R.id.button_1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, "onClick: button1");
                Toast.makeText(MainActivity.this,"You click button1", Toast.LENGTH_LONG).show();

            }
        });

        Button button2 = (Button) findViewById(R.id.button_2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, "onClick: button2");
                Toast.makeText(MainActivity.this,"You click button2", Toast.LENGTH_LONG).show();
            }
        });

        MyDialog myDialog = new MyDialog(MainActivity.this);
//        //设置点击屏幕或返回键,dialog都不消失
//        myDialog.setCancelable(false);
//        //设置点击屏幕dialog不消失,点击返回键dialog消失
        myDialog.setCanceledonTouchOutside(false);
//        Window window = myDialog.getWindow();
//        //设置对话框位置
//        window.setGravity(Gravity.CENTER);
//        myDialog.show();
//        //设置对话框的宽度和高度,一定要在show()方法之后使用,否则无效
//        window.setLayout(500,300);

        myDialog.setCancelable(false);
        Window window = myDialog.getWindow();
        window.setGravity(Gravity.CENTER);
        //设置Dialog不接受Touch事件
        window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
        myDialog.show();

    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        Log.d(TAG, "dispatchKeyEvent: mainactivity");
        return super.dispatchKeyEvent(event);
    }
}
(5)MyDialog:继承Dialog实现自定义的Dialog
package com.zz.dialogtest2;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StyleRes;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast;



public class MyDialog extends Dialog {
    private static final String TAG = "MyDialog";

    public MyDialog(@NonNull Context context) {
        super(context,R.style.MyDialog);
    }

    public MyDialog(@NonNull Context context, @StyleRes int themeResId) {
        super(context, themeResId);
    }

    protected MyDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
        super(context, cancelable, cancelListener);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mydialog);
    }

    @Override
    public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
        Log.d(TAG, "dispatchKeyEvent: mydialog");
        return false;
    }
}
3、效果图


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号