Dialog(对话框)

***AlertDialog

*常用方法:
setTitle():设置对话框的标题
setIcon():设置对话框图标
setMessage():设置对话框要传达的具体信息
setCancelable:点击对话框以外的区域是否让对话框消失
setNegativeButton(),setPositiveButton(),setNeutralButton():用来设置对话框中的按钮选项

案例效果:点击button按钮,可显示出Dialog对话框,再点击确定即可退出app,点击取消则什么都不做;或通过点击返回键也可显示出对话框

public class MainActivity extends Activity {
    private AlertDialog.Builder builder;
    private AlertDialog mydialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initDialog();
    }

    private void initDialog() {
        builder = new AlertDialog.Builder(this);//因为AlertDialog中的构造方法都是protect形式的,所以不能直接new创建对象,但可以调用它的内部类Builder创建
        //因为内部类Builder中方法的返回值仍然是Builder类型的所以可以采用链式调用多个方法
        builder.setTitle("警告").setIcon(R.drawable.ic_launcher).setCancelable(true).setMessage("确定退出?")
        .setNegativeButton("取消",null)
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();       
            }
        });
        mydialog = builder.create();
    }
    //设置button按钮的点击事件
    public void onClick(View v) {
        if(!mydialog.isShowing()){
            mydialog.show();
        }
    }
    //设置某按键被点击时的方法
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if((keyCode == KeyEvent.KEYCODE_BACK)&&(!mydialog.isShowing())){//这里设置返回键被点击时的操作
            mydialog.show();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

猜你喜欢

转载自www.cnblogs.com/SanguineBoy/p/9805265.html