Android中使用AlertDialog实现几种不同的对话框
生活随笔
收集整理的這篇文章主要介紹了
Android中使用AlertDialog实现几种不同的对话框
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
app中常見的對話框。
簡單的帶確定取消按鈕的對話框
?
帶列表的對話框
?
帶單項選擇的對話框
?
帶多項選擇的對話框
?
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
將布局改為LinearLayout,并通過android:orientation="vertical">設置為垂直布局。并添加四個按鈕
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center_horizontal"tools:context=".AlertDialogActivity"><Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#090808"android:background="#F44336"android:text="1" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#2196F3"android:background="#FF9800"android:text="2" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#F44336"android:background="#43b243"android:text="3" /><Buttonandroid:id="@+id/button4"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#9C27B0"android:background="#f9671e"android:text="4" /></LinearLayout>然后來到Activity
帶確定取消按鈕的對話框
??????? // 獲取“顯示帶取消、確定按鈕的對話框”按鈕Button button1 = (Button) findViewById(R.id.button1);// 為“顯示帶取消、確定按鈕的對話框”按鈕添加單擊事件監聽器button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建對話框對象 這里要通過Builder來創建AlertDialog alertDialog = new AlertDialog.Builder(AlertDialogActivity.this).create();alertDialog.setIcon(R.drawable.dog); //設置對話框的圖標alertDialog.setTitle("公眾號:");????? //設置對話框的標題alertDialog.setMessage("霸道的程序猿");??? //設置要顯示的內容//sdk版本問題if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {//添加取消按鈕alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "您單擊了否按鈕", Toast.LENGTH_SHORT).show();}});}//添加確定按鈕if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "您單擊了是按鈕 ", Toast.LENGTH_SHORT).show();}});}alertDialog.show(); //顯示對話框}});帶列表的對話框
??????? // 獲取“顯示帶列表的對話框”按鈕Button button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建水果字符串數組final String[] items = new String[]{"蘋果", "橘子", "香蕉","西瓜"};//創建列表對話框對象AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);//設置對話框的圖標builder.setIcon(R.drawable.dog);//設置對話框的標題builder.setTitle("請選擇你喜歡的水果:");//添加列表項builder.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this,"您選擇了" + items[which], Toast.LENGTH_SHORT).show();}});builder.create().show();? // 創建對話框并顯示}});帶單項選擇的對話框
??????? // 獲取“顯示帶單選列表項的對話框”按鈕Button button3 = (Button) findViewById(R.id.button3);button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建動物字符串數組final String[] items = new String[]{"小貓", "小狗", "烏龜", "金魚", "小豬"};// 顯示帶單選列表項的對話框AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);builder.setIcon(R.drawable.dog);??????????????????????????? //設置對話框的圖標builder.setTitle("如果讓你選擇,你最喜歡哪一個:");??????????????????? //設置對話框的標題builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this,"您選擇了" + items[which], Toast.LENGTH_SHORT).show();??? //顯示選擇結果}});//添加確定按鈕builder.setPositiveButton("確定", null);builder.create().show();??????????????????????????????????? // 創建對話框并顯示}});帶多項選擇的對話框
首先聲明兩個變量用來存儲各列表項要顯示的內容和記錄各列表項的狀態
??? private boolean[] checkedItems;//記錄各列表項的狀態private String[] items;//各列表項要顯示的內容然后
??????? // 獲取“顯示帶多選列表項的對話框”按鈕Button button4 = (Button) findViewById(R.id.button4);button4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {checkedItems = new boolean[]{false, true, false, true, false}; //記錄各列表項的狀態//各列表項要顯示的內容items = new String[]{"開心消消樂", "球球大作戰", "歡樂斗地主", "夢幻西游", "超級瑪麗"};// 顯示帶單選列表項的對話框AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);builder.setIcon(R.drawable.dog);??????????????????????? //設置對話框的圖標builder.setTitle("請選擇您喜愛的游戲:");??????????????????? //設置對話框標題builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {checkedItems[which] = isChecked;??????????? //改變被操作列表項的狀態}});//為對話框添加“確定”按鈕builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String result = "";for (int i = 0; i < checkedItems.length; i++) {//當選項被選擇時if (checkedItems[i]) {//將選項的內容添加到result中result += items[i] + "、";}}//當result不為空時,通過消息提示框顯示選擇的結果if (!"".equals(result)) {//去掉最后面添加的“、”號result = result.substring(0, result.length() - 1);Toast.makeText(AlertDialogActivity.this,"您選擇了[ " + result + " ]", Toast.LENGTH_LONG).show();}}});builder.create().show();??????????????????????????????? // 創建對話框并顯示}});完整示例代碼
package com.badao.relativelayouttest;import androidx.appcompat.app.AppCompatActivity;import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast;public class AlertDialogActivity extends AppCompatActivity {private boolean[] checkedItems;//記錄各列表項的狀態private String[] items;//各列表項要顯示的內容@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_alert_dialog);// 獲取“顯示帶取消、確定按鈕的對話框”按鈕Button button1 = (Button) findViewById(R.id.button1);// 為“顯示帶取消、確定按鈕的對話框”按鈕添加單擊事件監聽器button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建對話框對象 這里要通過Builder來創建AlertDialog alertDialog = new AlertDialog.Builder(AlertDialogActivity.this).create();alertDialog.setIcon(R.drawable.dog); //設置對話框的圖標alertDialog.setTitle("公眾號:");????? //設置對話框的標題alertDialog.setMessage("霸道的程序猿");??? //設置要顯示的內容//sdk版本問題if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {//添加取消按鈕alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "您單擊了否按鈕", Toast.LENGTH_SHORT).show();}});}//添加確定按鈕if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "您單擊了是按鈕 ", Toast.LENGTH_SHORT).show();}});}alertDialog.show(); //顯示對話框}});// 獲取“顯示帶列表的對話框”按鈕Button button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建水果字符串數組final String[] items = new String[]{"蘋果", "橘子", "香蕉","西瓜"};//創建列表對話框對象AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);//設置對話框的圖標builder.setIcon(R.drawable.dog);//設置對話框的標題builder.setTitle("請選擇你喜歡的水果:");//添加列表項builder.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this,"您選擇了" + items[which], Toast.LENGTH_SHORT).show();}});builder.create().show();? // 創建對話框并顯示}});// 獲取“顯示帶單選列表項的對話框”按鈕Button button3 = (Button) findViewById(R.id.button3);button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建動物字符串數組final String[] items = new String[]{"小貓", "小狗", "烏龜", "金魚", "小豬"};// 顯示帶單選列表項的對話框AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);builder.setIcon(R.drawable.dog);??????????????????????????? //設置對話框的圖標builder.setTitle("如果讓你選擇,你最喜歡哪一個:");??????????????????? //設置對話框的標題builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this,"您選擇了" + items[which], Toast.LENGTH_SHORT).show();??? //顯示選擇結果}});//添加確定按鈕builder.setPositiveButton("確定", null);builder.create().show();??????????????????????????????????? // 創建對話框并顯示}});// 獲取“顯示帶多選列表項的對話框”按鈕Button button4 = (Button) findViewById(R.id.button4);button4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {checkedItems = new boolean[]{false, true, false, true, false}; //記錄各列表項的狀態//各列表項要顯示的內容items = new String[]{"開心消消樂", "球球大作戰", "歡樂斗地主", "夢幻西游", "超級瑪麗"};// 顯示帶單選列表項的對話框AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);builder.setIcon(R.drawable.dog);??????????????????????? //設置對話框的圖標builder.setTitle("請選擇您喜愛的游戲:");??????????????????? //設置對話框標題builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {checkedItems[which] = isChecked;??????????? //改變被操作列表項的狀態}});//為對話框添加“確定”按鈕builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String result = "";for (int i = 0; i < checkedItems.length; i++) {//當選項被選擇時if (checkedItems[i]) {//將選項的內容添加到result中result += items[i] + "、";}}//當result不為空時,通過消息提示框顯示選擇的結果if (!"".equals(result)) {//去掉最后面添加的“、”號result = result.substring(0, result.length() - 1);Toast.makeText(AlertDialogActivity.this,"您選擇了[ " + result + " ]", Toast.LENGTH_LONG).show();}}});builder.create().show();??????????????????????????????? // 創建對話框并顯示}});} }?
?
總結
以上是生活随笔為你收集整理的Android中使用AlertDialog实现几种不同的对话框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android中实现长按照片弹出右键菜单
- 下一篇: Android中使用Notificati