Android中制作自定义dialog对话框的实例分享

2019-12-10 18:06:11丽君
易采站长站为您分析Android中制作自定义dialog对话框的实例分享,安卓自带的Dialog显然不够用,因而我们要继承Dialog类来制作自己的对话框,需要的朋友可以参考下  

自定义dialog基础版
很多时候,我们在使用android sdk提供的alerdialog的时候,会因为你的系统的不同而产生不同的效果,就好比如你刷的是MIUI的系统,弹出框都会在顶部显示!这里简单的介绍自定义弹出框的应用。

首先创建布局文件dialog:

代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://www.easck.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <EditText 
    android:id="@+id/edit"
    android:layout_width="250dip"
     android:layout_height="wrap_content"
    />
  <Button 
    android:id="@+id/clickbtn"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="click me" />
  

</LinearLayout>

其次创建MyCustomDialog类继承Dialog:

代码:

package com.xzw.custom.dialog;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
/**
* 自定义dialog
*/
public class MyCustomDialog extends Dialog {
    //定义回调事件,用于dialog的点击事件
    public interface OnCustomDialogListener{
        public void back(String name);
    }
    
    private String name;
    private OnCustomDialogListener customDialogListener;
    EditText etName;

    public MyCustomDialog(Context context,String name,OnCustomDialogListener customDialogListener) {
        super(context);
        this.name = name;
        this.customDialogListener = customDialogListener;
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog);
        //设置标题
        setTitle(name); 
        etName = (EditText)findViewById(R.id.edit);
        Button clickBtn = (Button) findViewById(R.id.clickbtn);
        clickBtn.setOnClickListener(clickListener);
    }
    
    private View.OnClickListener clickListener = new View.OnClickListener() {
        
        @Override
        public void onClick(View v) {
            customDialogListener.back(String.valueOf(etName.getText()));
          MyCustomDialog.this.dismiss();
        }
    };

}