在Andriod界面中,对话框是程序与用户交互的一种形式,通常用于当前程序提示信息以及相关说明。对话框常以小窗口的形式展现在Activity之上,当对话框显示时,处在下层的Activity失去焦点,对话框便可以接受用户的信息。
在普通对话框(Dialog)中,一般只会显示提示信息。
MainActivity.java代码如下:
package com.example.myapplication;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//声明对象
AlertDialog dialog;
//绑定当前界面窗口,设置标题
dialog = new AlertDialog.Builder(this).setTitle("Dialog对话框")
.setMessage("是否确定退出?")
.setIcon(R.mipmap.ic_launcher)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null)
.create();
dialog.show();
}
}
运行结果如下:
单选对话框和RadioButton作用类似,只能选择一个选项,它是通过AlertDialog对象调用setSingleChoiceItems()方法创建的。
MainActivity.java代码如下:
package com.example.myapplication;
import android.content.DialogInterface;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//生成对话框
new AlertDialog.Builder(this)
.setTitle("请选择性别")
.setIcon(R.mipmap.ic_launcher)
.setSingleChoiceItems(new String[]{"男","女"},0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}
)
.setPositiveButton("da", null)
.show();
}
}
运行结果如下:
多选对话框通常在需要勾选多种选项时使用,例如添加兴趣爱好、喜爱的电影等。创建多选对话框与创建单选对话框类似,调用setMultiChoiceItems()方法就可实现。
MainActivity.java代码如下:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AlertDialog;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new AlertDialog.Builder(this)
.setTitle("请添加兴趣爱好!")
.setIcon(R.mipmap.ic_launcher)
.setMultiChoiceItems(new String[]{"旅游","美食","汽车","宠物"},
null,null)
.setPositiveButton("确认", null)
.show();
}
}
运行结果如下:
进度条对话框一般在应用程序实现耗时操作时使用。Android中提供了两种进度条样式,圆形进度条和水平进度条。
MainActivity.java代码如下:
package com.example.myapplication;
import android.app.ProgressDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ProgressDialog prodialog;
prodialog = new ProgressDialog(this);
prodialog.setTitle("进度条对话框");
prodialog.setIcon(R.mipmap.ic_launcher);
prodialog.setMessage("正在下载请等候...");
//设置水平进度条
prodialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
prodialog.show();
}
}
消息对话框(Toast)是轻量级信息提醒机制,显示在应用程序界面的最上层,一段时间后自动消失不会打断当前操作,也不获得焦点。
MainActivity.java代码如下:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this,"Hello,Toast",Toast.LENGTH_SHORT).show();
}
}