1,写一个公共的类
import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import zz.vip.com.checkstand.R; /** * Created by lake * 此类的功能:公共使用的AlertDialog */ public class NewAlertDialog extends Dialog { private TextView dl_tv_title; //标题 private EditText dl_et_contect; //输入的内容 private Button btn_cannel, btn_confirm; //取消和确认 private String title; //传递的参数 private onOnclickListener noOnclickListener; private cannelClickListener cannelCkListener; public NewAlertDialog(@NonNull Context context, String title) { super(context); this.title = title; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_dialog_layout);//自定义布局 //按空白处不能取消动画 // setCanceledOnTouchOutside(false); //初始化界面控件 initView(); initEvent(); } public interface onOnclickListener { void onNoClick(); } public interface cannelClickListener { void cannelClick(); } public void setNoOnclickListener(onOnclickListener onNoOnclickListener) { this.noOnclickListener = onNoOnclickListener; } public void setcannelClickListener(cannelClickListener cannelClickListener) { this.cannelCkListener = cannelClickListener; } public String getContct() { return dl_et_contect.getText().toString(); } private void initEvent() { //设置确定按钮被点击后,向外界提供监听 btn_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (noOnclickListener != null) { noOnclickListener.onNoClick(); } } }); btn_cannel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (cannelCkListener != null) { cannelCkListener.cannelClick(); } } }); } private void initView() { dl_tv_title = findViewById(R.id.dl_tv_title); dl_tv_title.setText(title); dl_et_contect = findViewById(R.id.dl_et_contect); btn_cannel = findViewById(R.id.btn_cannel); btn_confirm = findViewById(R.id.btn_confirm); } }
2,布局文件
宽度可以自己定义,也可以在activity里获取屏幕的宽度自己输配,此处略过
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="500dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center">
<TextView
android:id="@+id/dl_tv_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="标题"
android:textColor="#000"
android:textSize="24dp" />
<EditText
android:phoneNumber="true"
android:id="@+id/dl_et_contect"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="30dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_cannel"
android:text="取消"
android:textSize="24dp"
android:layout_margin="10dp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/btn_confirm"
android:text="确认"
android:textSize="24dp"
android:layout_margin="10dp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
3,使用
final NewAlertDialog allDialog = new NewAlertDialog(this, "输入会员手机号"); allDialog.show(); allDialog.setNoOnclickListener(new NewAlertDialog.onOnclickListener() { @Override public void onNoClick() { String input = allDialog.getContct(); if (input.equals("")) { Toast.makeText(getApplicationContext(), "搜索内容不能为空!" + input, Toast.LENGTH_LONG).show(); } else { allDialog.dismiss(); //继续你的操作。 } } }); allDialog.setcannelClickListener(new NewAlertDialog.cannelClickListener() { @Override public void cannelClick() { allDialog.dismiss(); } });