Android中可以創(chuàng)建三種對話框、確定取消對話框、單選對話框、多選對話框
android中的確定取消對話框演示示例

Android中使用單選對話框的演示案例

android中使用多選對話框的演示案例

實現(xiàn)代碼如下
修改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" tools:context="com.fyt.dialogdemo.MainActivity" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="確定取消對話框" android:onClick="Clicked1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="單選對話框" android:onClick="Clicked2"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="多選對話框" android:onClick="Clicked3"/> </LinearLayout>
最后修改MainActivity.Java中的代碼
package com.fyt.dialogdemo; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //確定取消對話框按鈕響應(yīng)函數(shù) public void Clicked1(View view) { //使用創(chuàng)建器創(chuàng)建單選對話框 AlertDialog.Builder builder = new Builder(this); //設(shè)置對話框的圖標 builder.setIcon(android.R.drawable.alert_light_frame); //設(shè)置對話框的標題 builder.setTitle("欲練此功必先自宮"); //設(shè)置文本 builder.setMessage("林平之,想清楚哦"); //設(shè)置確定按鈕 builder.setPositiveButton("確定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "感謝使用本軟件,再見", Toast.LENGTH_SHORT).show(); } }); //設(shè)置取消按鈕 builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "若不自宮,一定不成功", Toast.LENGTH_SHORT).show(); } }); //使用創(chuàng)建器生成一個對話框?qū)ο?AlertDialog ad = builder.create(); ad.show(); } //單選對話框按鈕響應(yīng)函數(shù) public void Clicked2(View view) { AlertDialog.Builder builder = new Builder(this); //設(shè)置單選對話框的標題 builder.setTitle("請選擇性別"); //創(chuàng)建字符串數(shù)組,用來設(shè)置單選對話框中的條目 final String[] items = {"男", "女"}; //創(chuàng)建單選對話框 //第一個參數(shù):單選對話框中顯示的條目所在的字符串數(shù)組 //第二個參數(shù):默認選擇的條目的下標(-1表示默認沒有選擇任何條目) //第三個參數(shù):設(shè)置事件監(jiān)聽 builder.setSingleChoiceItems(items, -1, new OnClickListener() { //which:用戶所選的條目的下標 //dialog:觸發(fā)這個方法的對話框 @Override public void onClick(DialogInterface dialog, int which) { //使用吐司對話框提示用戶選擇的性別 Toast.makeText( MainActivity.this, "您選擇的性別是:" + items[which], Toast.LENGTH_SHORT).show(); //關(guān)閉對話框 dialog.dismiss(); } }); //顯示單選對話框 builder.show(); } //多選對話框按鈕響應(yīng)函數(shù) public void Clicked3(View view) { AlertDialog.Builder builder = new Builder(this); //設(shè)置多選對話框的標題 builder.setTitle("請選擇您覺得帥的人"); //創(chuàng)建字符串數(shù)組,用于設(shè)置多選對話框中的選項 final String[] items = { "侃哥", "趙帥哥", "趙老師", "趙師兄" }; //創(chuàng)建boolean數(shù)組,用于設(shè)置多選對話框中的條目是否被選中了 final boolean[] checkedItems = { false, false, false, false }; //創(chuàng)建多選對話框 //第一個參數(shù):多選對話框中條目所在的字符串數(shù)組 //第二個參數(shù):條目是否被選中的標記所在的數(shù)組 //第三個參數(shù):創(chuàng)建事件監(jiān)聽 builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() { //which:用戶點擊的條目的下標 //isChecked:用戶是選中該條目還是取消該條目 @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { checkedItems[which] = isChecked; } }); //設(shè)置一個確定按鈕 builder.setPositiveButton("確定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String text = ""; //記錄多選對話框中用戶選中的條目 for(int i = 0; i < 4; i++) { text += checkedItems[i]? items[i] + "," : ""; } //使用吐司對話框顯示用戶選中的條目 Toast.makeText(MainActivity.this, text, 0).show(); //隱藏多選對話框 dialog.dismiss(); } }); //顯示多選對話框 builder.show(); } } 新聞熱點
疑難解答