效果圖:
1.新建dialog_normal_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_round_white"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="12dp"
android:text="輸入密碼"
android:background="#cb9677"
android:textSize="16sp"
android:textColor="#fff"/>
<EditText
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:hint="請輸入密碼"
android:lineSpacingExtra="3dp"
android:layout_marginLeft="40dp"
android:layout_marginTop="20dp"
android:layout_marginRight="40dp"
android:layout_marginBottom="30dp"
android:textSize="14sp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ccc"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:id="@+id/cancel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_round_left_white"
android:layout_weight="1.0"
android:gravity="center"
android:text="取消"
android:textSize="12sp"
android:textColor="#803b22"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#cb9677"/>
<TextView
android:id="@+id/submit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_round_right_white"
android:gravity="center"
android:layout_weight="1.0"
android:text="確定"
android:textSize="12sp"
android:textColor="#fff"/>
</LinearLayout>
</LinearLayout>
2.相關樣式
bg_round_left_white.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:bottomLeftRadius="8dp" />
<stroke
android:width="2dp"
android:color="#cb9677"/>
</shape>
bg_round_right_white.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#cb9677" />
<corners android:bottomRightRadius="8dp" />
</shape>
bg_round_white.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="8dp" />
</shape>
style.xml
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<!--邊框-->
<item name="android:windowIsFloating">true</item>
<!--是否浮現在activity之上-->
<item name="android:windowIsTranslucent">false</item>
<!--半透明-->
<item name="android:windowNoTitle">true</item>
<!--無標題-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--背景透明-->
<item name="android:backgroundDimEnabled">true</item>
<!--模糊-->
</style>
3.CommomDialog.java
public class CommomDialog extends Dialog implements View.OnClickListener{
public EditText contentTxt;
private TextView titleTxt;
private TextView submitTxt;
private TextView cancelTxt;
private Context mContext;
private String content;
private OnCloseListener listener;
private String positiveName;
private String negativeName;
private String title;
public CommomDialog(Context context) {
super(context);
this.mContext = context;
}
public CommomDialog(Context context, int themeResId, String content) {
super(context, themeResId);
this.mContext = context;
this.content = content;
}
public CommomDialog(Context context, int themeResId, String content, OnCloseListener listener) {
super(context, themeResId);
this.mContext = context;
this.content = content;
this.listener = listener;
}
protected CommomDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
this.mContext = context;
}
public CommomDialog setTitle(String title){
this.title = title;
return this;
}
public CommomDialog setPositiveButton(String name){
this.positiveName = name;
return this;
}
public CommomDialog setNegativeButton(String name){
this.negativeName = name;
return this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_normal_layout);
setCanceledOnTouchOutside(false);
initView();
}
private void initView(){
contentTxt = (EditText) findViewById(R.id.content);
titleTxt = (TextView)findViewById(R.id.title);
submitTxt = (TextView)findViewById(R.id.submit);
submitTxt.setOnClickListener(this);
cancelTxt = (TextView)findViewById(R.id.cancel);
cancelTxt.setOnClickListener(this);
// contentTxt.setText(content);
if(!TextUtils.isEmpty(positiveName)){
submitTxt.setText(positiveName);
}
if(!TextUtils.isEmpty(negativeName)){
cancelTxt.setText(negativeName);
}
if(!TextUtils.isEmpty(title)){
titleTxt.setText(title);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.cancel:
if(listener != null){
listener.onClickCancel(this, false);
}
this.dismiss();
break;
case R.id.submit:
if(listener != null){
listener.onClickSubmit(this, true);
}
break;
}
}
public interface OnCloseListener{
void onClickCancel(Dialog dialog, boolean confirm);
void onClickSubmit(Dialog dialog, boolean confirm);
}
}
4.在MainActivity.java中調用
public void btdialog(View view){
commomDialog = new CommomDialog(MainActivity.this, R.style.dialog, "請輸入密碼", new CommomDialog.OnCloseListener() {
@Override
public void onClickCancel(Dialog dialog, boolean confirm) {
dialog.dismiss();
}
@Override
public void onClickSubmit(Dialog dialog, boolean confirm) {
String name = commomDialog.contentTxt.getText().toString().trim();
tv1.setText(name);
dialog.dismiss();
}
});
commomDialog.setTitle("輸入密碼").show();
}
給彈出框賦值
public class ShowBoxTaost extends Dialog {
private ImageView iv_toast;
private LinearLayout ll_toast;
private TextView tv_toast;
public ShowBoxTaost(Context context) {
super(context);
}
public void setFlag(String flag){
ll_toast.setBackgroundResource(R.drawable.toast_y);
iv_toast.setImageResource(R.drawable.jiaoyan_chenggong);
tv_toast.setText(flag);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.toast_show);
iv_toast=findViewById(R.id.iv_toast);
ll_toast=findViewById(R.id.ll_toast);
tv_toast =findViewById(R.id.tv_toast);
}
}
ShowBoxTaost showBoxTaost=new ShowBoxTaost(context);
showBoxTaost.show();
showBoxTaost.setFlag("Y");