单选与多选对话框
public void myClick(View view) {
// 单选对话框
//singleCheckDialog();
// 多选对话框
mulCheckDialog();
}
private void mulCheckDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("标题")
.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
StringBuilder reuslt = new StringBuilder();
for (int i = 0; i < items.length; i++) {
if (checkedItems[i]) {
reuslt.append(items[i]).append(" ");
}
}
Toast.makeText(MainActivity.this, "选择了" + reuslt.toString(), Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
private void singleCheckDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("标题")
.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String itemStr = items[which];
Toast.makeText(MainActivity.this, "选择了" + itemStr, Toast.LENGTH_SHORT).show();
// 关闭对话框
//dialog.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
ProgressDialog
public void myClick(View view) {
// 水平进度对话框
horProgressDialog();
// 圆形进度对话框
//cirProgressDialog();
}
private void cirProgressDialog() {
ProgressDialog pd = new ProgressDialog(MainActivity.this);
pd.setTitle("标题");
pd.setMessage("显示的内容");
pd.setCancelable(true);
pd.show();
}
private void horProgressDialog() {
final ProgressDialog pd = new ProgressDialog(MainActivity.this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setTitle("标题");
pd.setMessage("显示的内容");
pd.setCancelable(true);
pd.setMax(100);
pd.show();
new Thread(new Runnable() {
@Override
public void run() {
for(int i=1;i<=100;i++){
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 设置进度可以在子线程更新
pd.setProgress(i);
}
runOnUiThread(new Runnable() {
@Override
public void run() {
// 关闭对话框
pd.dismiss();
Toast.makeText(MainActivity.this, "加载成功", Toast.LENGTH_SHORT).show();
}
});
}
}).start();
}
design库的底部对话框
compile ‘com.android.support:design:25.1.0’
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void myClick(View view) {
// 创建底部对话框
BottomSheetDialog sheetDialog = new BottomSheetDialog(this);
View dialogView = getLayoutInflater().inflate(R.layout.item, null);
dialogView.findViewById(R.id.btn_sure).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点击确定", Toast.LENGTH_SHORT).show();
}
});
dialogView.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点击取消", Toast.LENGTH_SHORT).show();
}
});
// 指定自定义的View
sheetDialog.setContentView(dialogView);
// 设置点击到外部消失 默认为true
sheetDialog.setCanceledOnTouchOutside(true);
// 设置点击back键消失 默认为true
sheetDialog.setCancelable(true);
// 显示API提供的底部对话框
sheetDialog.show();
// 使用自定义的对话框
// new MyBottomDialog().show(getSupportFragmentManager(),null);
}
}
MyBottomDialog.class:
// 通过集成BottomSheetDialogFragment来自定义更丰富的布局
public class MyBottomDialog extends BottomSheetDialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.item, null);
View btn = inflate.findViewById(R.id.btn_cancel);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 关闭底部对话框
dismiss();
}
});
return inflate;
}
}
对话框背景透明
1.创建透明主题
<style name="TransparentDialogTheme">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:backgroundDimAmount">0.6</item>
</style>
2.显示对话框前调用
yourDialog.setStyle(STYLE_NO_FRAME,R.style.TransparentDialogTheme);