Dialog简单范例

dialog很常用,所以记下来一个比较好用,容易理解的小例子作为笔记

LayoutInflater factory = LayoutInflater
                    .from(PurchaseDetailsActivity.this);// 提示框
            final View view = factory.inflate(R.layout.dialog_purchase_details,
                    null);// 这里必须是final的

给里面的控件找ID

et_farm = (EditText) view.findViewById(R.id.et_farm_name);// 获得农场名称
            et_farm.setText(details.enterprise_name);
            et_farm.setEnabled(true);
            et_lineman = (EditText) view.findViewById(R.id.et_dl_linkman);// 获得联系人
            et_phone = (EditText) view.findViewById(R.id.et_dl_phone);// 获得电话
            et_price = (EditText) view.findViewById(R.id.et_dl_price);// 获得价格

new AlertDialog.Builder(PurchaseDetailsActivity.this)
                    // .setTitle("报价信息")
                    // 提示框标题
                    .setView(view)
                    .setPositiveButton(
                            "确定",// 提示框的两个按钮
                            new android.content.DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which) {
                                    /**
                                     * 判断必填项是否为空
                                     */
                                    isEtEmpty(dialog);
                                }
                            })
                    .setNegativeButton(
                            "取消",
                            new android.content.DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which) {
                                    miss(dialog);
                                }
                            }).create().show();

这个上面的miss是个专门写的方法

/**
     * 让dialog消失
     * 
     * @param dialog
     */
    public void miss(DialogInterface dialog) {
        try {
            Field field = dialog.getClass().getSuperclass()
                    .getDeclaredField("mShowing");
            field.setAccessible(true);
            field.set(dialog, true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
发布了25 篇原创文章 · 获赞 24 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章