在我们的Android开发过程中,有多种对话框,比如:Dialog、AlertDialog、ProgressDialog、时间对话框等等。而在这里我们就主要简单的讲解一下AlertDialog
AlertDialog是Dialog的一个直接子类,一般而言,我们使用的对话框都会有一个标题(title),一个图像(Icon),提示内容(message),还有一个(button)、或者两个、或者三个按钮(一般而言三个按钮的比较少见)。
有一点使我们必须要注意的:AlertDialog的构造方法全部是Protected类型的,所以我们是无法直接new 一个AlertDialog,而是需要采用AlertDialog.Builder中的create()方法来创建对话框。
写一个简单布局,我们就设定一个按钮,当我们点击这个按钮的时候就触发出一个AlertDialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="AlertDialog" />
</LinearLayout>
创建MainActivity.class:
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//设置标题
builder.setTitle("提示");
//设置提示内容
builder.setMessage("你确定要删除这条信息吗?");
//使用图片
builder.setIcon(R.mipmap.ic_launcher);
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你点击了取消",Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你点击了确定",Toast.LENGTH_SHORT).show();
}
});
builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你点击了忽略",Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});
}
}
我们这里添加了三个按钮,其中Android中已经帮我把第一设置为“忽略”,当然,如果我们是使用了两个按钮的话,那么第一个按钮就是“取消”,这主要是为了我们在进行某项操作时会多一个思考,防止下意识的就确定,造成不可挽回的后果;setNeutralButton这个用的较少。诚然,对于对话框还有很多属性可以set,读者可以多多尝试。对于AlertDialog的简单介绍就到这了。