自定义dialog

    xiaoxiao2021-03-25  10

    布局 <?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:layout_gravity="center" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@drawable/bg_dialog_common" android:gravity="center" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:orientation="horizontal"> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="match_parent" android:text="确定退出" android:gravity="center" android:textColor="@color/black" android:textSize="@dimen/text_xlarge" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1px" android:background="@color/divide_line"></View> <LinearLayout android:layout_width="match_parent" android:layout_height="45dp" android:gravity="center" android:orientation="horizontal"> <Button android:id="@+id/negative_btn" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:gravity="center" android:text="取消" android:textColor="@color/dialog_blue" android:textSize="@dimen/text_xlarge" /> <View android:layout_width="1px" android:layout_height="match_parent" android:background="@color/divide_line"></View> <Button android:id="@+id/positive_btn" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@null" android:gravity="center" android:text="确定" android:textColor="@color/dialog_blue" android:textSize="@dimen/text_xlarge" /> </LinearLayout> </LinearLayout> 自定义dialog public class CommonDialog extends Dialog implements View.OnClickListener { private Context mContext; private TextView mPositiveBtn, mNegativeBtn, mTitleTv; private OnDialogListener mOnDialogListener; private String mTitle,positive,negivite; public CommonDialog(Context context, String msg) { super(context, R.style.dialog); this.mContext = context; this.mTitle = msg; } public CommonDialog(Context context,String title,String positive,String negivite){ super(context, R.style.dialog); this.mTitle=title; this.positive=positive; this.negivite=negivite; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_common); findView(); setListener(); initView(); } private void findView() { mTitleTv = (TextView) findViewById(R.id.title); mPositiveBtn = (TextView) findViewById(R.id.positive_btn); mNegativeBtn = (TextView) findViewById(R.id.negative_btn); } private void initView() { if (mTitle != null && mTitle.length() > 0) { mTitleTv.setText(mTitle); } if (positive != null && positive.length() > 0) { mPositiveBtn.setText(positive); } if (negivite != null && negivite.length() > 0) { mNegativeBtn.setText(negivite); } } private void setListener() { mPositiveBtn.setOnClickListener(this); mNegativeBtn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.negative_btn: mOnDialogListener.onNegativeButton(this); dismiss(); break; case R.id.positive_btn: mOnDialogListener.onPositiveButton(this); dismiss(); break; default: break; } } public interface OnDialogListener { void onNegativeButton(Dialog dialog); void onPositiveButton(Dialog dialog); } public void setOnDialogListener(OnDialogListener listener) { mOnDialogListener = listener; } } 用法 CommonDialog deleteDialog = new CommonDialog(this, "确定删除"); deleteDialog.setCancelable(true); // 设置是否模态 deleteDialog.setCanceledOnTouchOutside(true); // 设置点击外部区域可消去(这两条属性最好放在dialog里写) /* dialog.setCancelable(false); dialog弹出后会点击屏幕或物理返回键,dialog不消失 dialog.setCanceledOnTouchOutside(false); dialog弹出后会点击屏幕,dialog不消失;点击物理返回键dialog消失**/ deleteDialog.setOnDialogListener(new CommonDialog.OnDialogListener() { @Override public void onNegativeButton(Dialog dialog) { } @Override public void onPositiveButton(Dialog dialog) { RequestParams subjectParams = new RequestParams(); subjectParams.put("goodId", id); VolleyManager.getInstance().postObject(AppContant.DELRECOMMEND_INFOR, subjectParams, BestComeActivity.this, AppContant.DELRECOMMEND_INFOR_ID); } }); deleteDialog.show();

    根据需求做适当的修改

    转载请注明原文地址: https://ju.6miu.com/read-149788.html

    最新回复(0)