Android自定义最简单的dialog

来源:互联网 发布:淘宝店怎么管理 编辑:程序博客网 时间:2024/06/08 09:37
package cn.mohekeji.wts.ui.dialog;/** * 提示dialog * **/import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.TextView;import cn.mohekeji.wts.R;public class HintDialog extends Dialog implements View.OnClickListener {//继承自dialogy    private Context mContext;//上下文    private TextView mPositiveBtn, mNegativeBtn;//两个button的文字    private OnDialogListener mOnDialogListener;//类里的接口(内部接口)    public HintDialog(Context context) {//构造方法        super(context, R.style.Dialog);        this.mContext = context;    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dialog_main_class);        findView();//找到两个按钮的id        setListener();//设置两个按钮的点击监听    }    private void findView() {        mPositiveBtn = (TextView)findViewById(R.id.positive_btn);        mNegativeBtn = (TextView)findViewById(R.id.negative_btn);    }    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;    }}
使用时
protected void hintDialog(){    HintDialog hintDialog = new HintDialog(this);    hintDialog.setCancelable(true); // 设置是否模态设置为false,按返回键不能退出    hintDialog.setCanceledOnTouchOutside(true); // 设置点击外部区域可消去    hintDialog.setOnDialogListener(new HintDialog.OnDialogListener() {//实现内部接口(内部接口可以通过对象.接口名的方式调用)
        @Override        public void onNegativeButton(Dialog dialog) {        }        @Override        public void onPositiveButton(Dialog dialog) {            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);            startActivityForResult(intent, 0); // 设置完成后返回到原来的界面        }    });    hintDialog.show();}

0 0
原创粉丝点击