Android之AlerDialog實現對話方塊
阿新 • • 發佈:2018-12-03
AlerDialog在一個子類可以顯示一個對話方塊,兩個或三個按鈕。如果你只是想顯示一個字串在這個對話方塊中,使用setMessage()方法。如果你想顯示一個更復雜的檢視,查詢FrameLayout叫做“定製”並新增你的檢視:
對AlerDialog是現實了、普通對話方塊,列表對話方塊,單選對話方塊,以及多選對話方塊。在java檔案裡一定要寫AlerDialog的實現方法
builder.create().show();不然AlerDialog不起作用,但是程式也不報錯,很難發現。
activity_main.xml檔案
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.a13468.mydemo18_alerdialog.MainActivity" > <Button android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#0c13ed" android:background="#00ff8c" android:textSize="25sp" android:layout_marginTop="10dp" android:layout_marginBottom="20dp" android:onClick="doBtn1" android:text="顯示帶取消,確定按鈕的對話方塊"/> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#ed5e0c" android:background="#500de2" android:textSize="30sp" android:onClick="doBtn2" android:layout_marginBottom="20dp" android:text="顯示帶列表的對話方塊"/> <Button android:id="@+id/btn3" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#0cdeed" android:background="#ddff00" android:textSize="30sp" android:onClick="doBtn3" android:layout_marginBottom="20dp" android:text="顯示帶單選列表項的對話方塊"/> <Button android:id="@+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#0cdeed" android:background="#ff2f00" android:textSize="30sp" android:onClick="doBtn4" android:layout_marginBottom="20dp" android:text="顯示帶多選列表的對話方塊"/> </LinearLayout>
MainActivity.java檔案:
package com.example.a13468.mydemo18_alerdialog; /** * AlerDialog實現對話方塊 */ import android.app.Activity; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button btn1; private Button btn2; private Button btn3; private Button btn4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1=findViewById(R.id.btn1); btn2=findViewById(R.id.btn2); btn3=findViewById(R.id.btn3); btn4=findViewById(R.id.btn4); /** * 顯示列表對話方塊 */ btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //建立AlerDialgo方法且例項化 AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); final String[]items=new String[]{"百度","騰訊","阿里巴巴","華為"};//建立列表類容 builder.setIcon(R.mipmap.logo);//新增圖示 builder.setTitle("你喜歡哪家公司?");//新增開頭 //新增列表項 builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "你選擇了"+items[i]+"公司", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); } }); /** * 顯示帶單選按鈕的列表對話方塊 */ btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //建立AlerDialog方法且例項化 AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); final String items[]=new String[]{"趙","錢","李","孫","秦"};//建立列表內容 builder.setIcon(R.mipmap.logo);//新增圖示 builder.setTitle("您姓什麼");//新增標題 builder.setPositiveButton("確定",null);//新增確定按鈕,null表示沒有對按鈕設定監聽 //新增列表項 builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "你選擇的姓是【"+items[i]+"】", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); } }); /** * 顯示覆選按鈕對話方塊 */ btn4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); final boolean Clickitems[]=new boolean[]{false,true,false,false,true}; final String items[]=new String[]{"電影","跑步","看書","唱歌","程式設計"}; builder.setIcon(R.mipmap.logo); builder.setTitle("你有什麼愛好?"); //新增列表項 builder.setMultiChoiceItems(items,Clickitems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i, boolean b) { Clickitems[i]=b;//改變被操作列表項的狀態 } }); //新增確定按鈕 builder.setPositiveButton("確定", new DatePickerDialog.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { String result="";//記錄結果 for(int a=0;a<Clickitems.length;a++){ if(Clickitems[a]){ result+=items[a];//把列表類容,新增到result中 } } if(!"".equals(result)){ Toast.makeText(MainActivity.this, "你選擇了【"+result+"】", Toast.LENGTH_SHORT).show(); } } }); builder.create().show(); } }); } /** * 取消確定按鈕對話方塊(普通對話方塊) * @param v */ public void doBtn1(View v ){ AlertDialog alertDialog=new AlertDialog.Builder(MainActivity.this).create();//建立AlerDialog物件且例項化 alertDialog.setIcon(R.mipmap.logo);//設定圖示 alertDialog.setTitle("AlerDialog");//設定標題 alertDialog.setMessage("你真的要退出嗎");//設定內容 alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "您好狠心!!", Toast.LENGTH_SHORT).show(); } });//確定按鈕 alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "看來您是愛我的", Toast.LENGTH_SHORT).show(); } });//新增取消按鈕 alertDialog.show(); } }