本文原創首發CSDN,鏈接 https://blog.csdn.net/qq_41464123/article/details/106618845 ,作者博客https://blog.csdn.net/qq_41464123 ,轉載請帶上本段文字,尤其是腳本之家、碼神島等平台,謝謝配合。
目錄
一、什么是AlertDialog對話框 ?
在Android中,AlertDialog可以為當前的界面上顯示一個對話框,而且產生的對話框是在所有界面元素上面的,能夠覆蓋掉其余組件,所以AlertDialog一般是用於提示一些非常重要的信息或者警告內容。
二、如何使用?
AlertDialog的功能十分強大,它不僅可以生成帶按鈕的提示對話框,還可以生成帶列表的列表對話框。
對話框區域通常被分為四個區域,分別是圖標區、標題區、內容區、按鈕區域。
1.顯示帶確定、取消按鈕的對話框
效果圖:
單擊按鈕后:
對話框隱藏,提示單擊信息。
實現方法,在XML文件中新建一個按鈕,在Java文件中添加單擊事件響應
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setIcon(R.mipmap.advise);
alertDialog.setTitle("標題");
alertDialog.setMessage("具體文本");
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您單擊了否按鈕", Toast.LENGTH_SHORT).show();
}
});
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您單擊了是按鈕 ", Toast.LENGTH_SHORT).show();
}
});
alertDialog.show();
}
});
2. 顯示帶列表的對話框
效果展示:
單擊按鈕后:
對話框隱藏,提示單擊信息。
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String[] items = new String[]{"選項1", "選項2", "選項3","選項4"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.advise1);
builder.setTitle("請選擇選項:");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,
"您選擇了" + items[which], Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
});
3. 顯示帶單選列表項的對話框
效果展示:
單擊后:
Java邏輯代碼部分:
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String[] items = new String[]{"扎克伯格", "喬布斯", "拉里.埃里森", "安迪.魯賓", "馬雲"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.advise2);
builder.setTitle("如果讓你選擇,你最想做哪一個:");
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,
"您選擇了" + items[which], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("確定", null);
builder.create().show();
}
});
本文原創首發CSDN,鏈接 https://blog.csdn.net/qq_41464123/article/details/106618845 ,作者博客https://blog.csdn.net/qq_41464123 ,轉載請帶上本段文字,尤其是腳本之家、碼神島等平台,謝謝配合。
4. 顯示帶多選列表項的對話框
效果展示:
單擊后:
點擊確定后,顯示:
Java邏輯代碼:
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkedItems = new boolean[]{false, true, false, true, false};
//各列表項要顯示的內容
items = new String[]{"開心消消樂", "球球大作戰", "歡樂斗地主", "夢幻西游", "超級瑪麗"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.advise2);
builder.setTitle("請選擇您喜愛的游戲:");
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which] = isChecked;
}
});
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String result = "";
for (int i = 0; i < checkedItems.length; i++) {
if (checkedItems[i]) {
result += items[i] + "、";
}
}
if (!"".equals(result)) {
result = result.substring(0, result.length() - 1);
Toast.makeText(MainActivity.this,
"您選擇了[ " + result + " ]", Toast.LENGTH_LONG).show();
}
}
});
builder.create().show();
}
});
三、總結
在Android中,如果需要使用 對話框 組件,來實現一定的功能,就需要用到 AlertDialog 。
本文主要總結了 AlertDialog 的四種常用方法,以便后續不時之需。