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();
}