AlertDialog
消息提示机制,常用来向用户传递信息、提示或警告用户行为的。
常用方法:setTitle、setMessage、create、show
package com.example.dialogapplication;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void myClick(View view){
switch (view.getId()){
case R.id.normal_dialog_btn:
//AlertDialog的构造方法
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("提示");
builder.setMessage("您确定退出程序吗?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.setNegativeButton("取消",null);
builder.show();
break;
case R.id.diy_dialog_btn:
break;
}
}
}
自定义Dialog
步骤:1、设置布局;2、设置Style;3、自定义Dialog;4、显示
1、使用ImageView和ImageButtom等控件完成dialog_layout的布局
设置一个MyDialog类,使该类继承于Dialog
public class MyDialog extends Dialog{ public MyDialog(Context context,int themeResId){ super(context,themeResId); //为对话框设置布局, setContentView(R.id.dialog_layout); findViewById(R.id.yes_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //对于对话框没有finish()方法,所以只能用System.exit(0) System.exit(0); } }); findViewById(R.id.no_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //点击no按钮,就什么事情不发生,对话框消失,使用dismiss()方法 dismiss(); } }); } }
2、设置Style,在value-->styles.xml文件中进行设置:
<!-- parent找到对话框风格体系 --> <style name="mydialog" parent="android:style/Theme.Dialog"> <!-- 不要标题 --> <item name="android:windowNoTitle">true</item> <!-- 不要背景,背景色透明 --> <item name="android:windowBackground">@android:color/transparent</item> </style>
3、显示
case R.id.diy_dialog_btn: MyDialog md=new MyDialog(this,R.style.mydialog); md.show(); break;