自定义dialog

来源:互联网 发布:sql 查询前10条 编辑:程序博客网 时间:2024/06/05 06:35
  • 布局
<?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();

根据需求做适当的修改

0 0
原创粉丝点击