Popupwindow、alertDialog

popupWindow是一个弹窗,应用比较广泛。它的简单实用方法是1、写一个view2、生成一个popupWindow new PopupWindow(view1,500,800); 3、展示popupWindow popupWindow.showAsDropDown(view) 除此之外为了效果还可以设置popupWindow的背景色,popupWindow。setBackGroundDrawable(new Color(Color.BLUE))还可设置点击空白处popupWindow是否会消失popupWindow.setOutSideTouchable(true),最后响应一个事件让popupWindow消失,popupWindow.dismiss();
实现代码如下

public class MainActivity extends AppCompatActivity {


    private PopupWindow popupWindow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {//实现视图
                View view1 = View.inflate(MainActivity.this, R.layout.pop_layout,null);
//生成一个新的popupWindow,参数一为popupwindow的视图,参数二三分别为宽和高
                popupWindow = new PopupWindow(view1,500,800);
                popupWindow.setBackgroundDrawable(new ColorDrawable(Color.BLUE));//设置弹窗的背景色
                popupWindow.setOutsideTouchable(true);//设置点击空白处,弹窗是否消失
                popupWindow.showAsDropDown(view1,200,200);//显示弹窗,参数一为弹窗的视图,参数二三为显示的坐标

            }
        });
        findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (popupWindow!=null){//判断弹窗是否存在,如果存在,则响应点击事件,让弹窗消失
                    popupWindow.dismiss();
                }
            }
        });
    }
}

除了上面的程序外在main_activity.xml文件中只有两个Button,在pop_layout中,也仅有两个Button,但并没有响应函数。

AlertDialog的使用
AlertDialog的函数包括构造函数都是protected,所以不能直接new一个AlertDialog对象出来,所以为了获取AlertDialog对象,系统提供了一个静态内部类Builder让我们使用,通过Builder可以创建AlertDialog对象。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.display).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("标题");
                builder.setMessage("内容");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });
                builder.show();
            }
        });

先创建 AlertDialog的内部类Builder,然后给这个builder设置布局信息,如title,message。两个点击按钮并分别为两个按钮设置监听,这个布局时系统提供的。
当需要使用自定义对话框时,需要使用AlertDialog.Builder的create方法来构建AlertDialog创建对话框。

 findViewById(R.id.display).setOnClickListener(new View.OnClickListener() {//找到控件,设置监听
             @Override
             public void onClick(View view) {
                 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);//创建builder
                 AlertDialog alertDialog = builder.create();//得到AlertDialog对象
                 View view1 = View.inflate(MainActivity.this, R.layout.pop_layout,null);//创建布局
                 alertDialog.setView(view1);//设置布局
                 //点击其它地方不消失
                 alertDialog.setCanceledOnTouchOutside(false);
                 alertDialog.show();//对话框显示
             }
         });

你可能感兴趣的:(Popupwindow、alertDialog)