1.确认对话框
@Override
//重写返回函数
public void onBackPressed() {
//创建AlertDialog.Builder对象
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//设置图标、标题、按钮
builder.setIcon(R.drawable.keeplogo);
builder.setTitle("确认退出么");
builder.setNegativeButton("取消",null);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
//显示对话框
builder.show();
}
展示图:
2.列表对话框
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
final String[] arr = {"游泳", "读书", "足球", "逛街", "其他"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.keeplogo);
builder.setTitle("活动");
builder.setItems(arr,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this,"用户选择了:"+arr[i],Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.show();
return true;
}
展示图:
3.单选对话框
int selectedId;
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
final String[] arr = {"1星","2星","3星","4星","5星"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.keeplogo);
builder.setTitle("大虾,给个五星评价吧!");
builder.setSingleChoiceItems(arr, 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
selectedId = i;
Toast.makeText(MainActivity.this,"您的选择是" + arr[i],Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this,"您的决定是" + arr[selectedId],Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", null);
builder.show();
return true;
}
展示图:
4.多选对话框
ArrayList<Integer> MultiChoiceID = new ArrayList<Integer>();
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
final String[] arr = {"游泳", "读书", "足球", "逛街", "其他"};
MultiChoiceID.clear();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.keeplogo);
builder.setTitle("活动");
builder.setMultiChoiceItems(arr,
new boolean[]{false, false, false, false, false},
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean checked) {
if (checked) {
MultiChoiceID.add(i);
} else {
MultiChoiceID.remove(i);
}
Toast.makeText(MainActivity.this, "您的选择是" + MultiChoiceID.toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.show();
return true;
}
展示图:
5.自定义对话框
dialog.java:
public class dialog extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog);
Button btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(this);
}
//声明对话框
Dialog dialog;
@Override
public void onClick(View view) {
//创建LayoutInflater
LayoutInflater inflater = LayoutInflater.from(this);
//获取自定义对话框布局
View myView = inflater.inflate(R.layout.mydialog,null);
//创建AlertDialog.Builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//为对话框设置布局
builder.setView(myView);
//设置对话框按钮点击事件
myView.findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//关闭对话框
dialog.dismiss();
}
});
//创建对话框
dialog = builder.create();
//显示对话框
dialog.show();
}
}
mydialog.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="提醒"
android:textSize="20dp"
android:background="#000033"
android:gravity="center"
android:textColor="#FFFFFF"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="90dp"
android:orientation="vertical"
android:gravity="center"
android:background="#FFFFFF">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="恭喜您,验证码发送成功!"
android:textColor="#000000"
android:textSize="16dp"
/>
<Button
android:layout_width="70dp"
android:layout_height="30dp"
android:background="#00AAAA"
android:textColor=" #FFFFFF"
android:text="确定"
android:textSize="16dp"
android:layout_marginTop="15dp"
android:id="@+id/btn2"/>
</LinearLayout>
</LinearLayout>
dialog.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:id="@+id/btn1"/>
</LinearLayout>
展示图:
6.进度条对话框
activity.java:
public class dialog extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog);
Button btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(this);
}
ProgressDialog pd;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
pd.dismiss();
}
};
public void showProgress() {
pd = new ProgressDialog(this);
pd.setTitle("应用安装中");
pd.setMessage("请稍后...");
pd.setCancelable(true);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//STYLE_HORIZONTAL(水平进度条),STYLE_SPINNER(环形进度条)
pd.show();
}
@Override
public void onClick(View view) {
showProgress();
//延时操作
new Thread() {
@Override
public void run() {
for (int i = 0; i < 2; i++) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
handler.sendEmptyMessage(0);
}
}.start();
}
}