Android学习之Dialog的实现

记郑州一场暴雨。


分类

对话窗的形式暂且把它分为两种吧:
①、在对话框中输入信息,然后有确定取消按钮。
②、只有确定取消按钮。

先看实现的效果

上述第一种就类似这种


这里写图片描述

第二种嘛,就类似这种咯


这里写图片描述


带输入信息的dialog实现

先建一个layout布局的xml文件,做好对应的界面。

  • app/src/main/res/layout/dialog.xml

这里写图片描述

  • app/src/main/java/包名/MainActivity.java
public class MainActivity extends AppCompatActivity {

    ...
    AlertDialog alertDialogConnect;//定义一个提示框
    View viewConnect;//获取自定义界面
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        /*对话框实现*/
        alertDialogConnect = new AlertDialog.Builder(MainActivity.this).create();
        viewConnect = View.inflate(MainActivity.this, R.layout.dialog, null);
        alertDialogConnect.setView(viewConnect);//设置对话框显示内容
        ...
    }

}

需要注意的是,在MainActivity中实现对话框的布局里的控件id获取,必须在前面加上对应的View

上面自定义界面View名称为viewConnect,那么对应获取id的时候需要在findViewById前加上这个viewConnect,像这样一样:

这里写图片描述


只有按钮的Dialog实现

不需要相应的layout文件,可直接在代码中设置标题、内容、确定和取消按钮

  • app/src/main/java/包名/MainActivity.java
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
       .setMessage("Dialog content.")
       .setPositiveButton("OK", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, 
               int which) {
               }
       })
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog,
                int which) {
               }
        })
       .show();

猜你喜欢

转载自blog.csdn.net/ReCclay/article/details/81570953