Android中AlertDialog各種對話框的用法實(shí)例詳解
目標(biāo)效果:
程序運(yùn)行,顯示圖一的幾個(gè)按鈕,點(diǎn)擊按鈕分別顯示圖二到圖六的對話框,點(diǎn)擊對話框的某一項(xiàng)或者按鈕,也會(huì)顯示相應(yīng)的吐司輸出。
1.activity_main.xml頁面存放五個(gè)按鈕。
activity_main.xml頁面:
<RelativeLayout 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=".MainActivity" > <Button android:id="@+id/btnSure" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="確認(rèn)對話框"/> <Button android:id="@+id/btnRadio" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:text="單選對話框"/> <Button android:id="@+id/btnCheck" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="110dp" android:text="多選對話框"/> <Button android:id="@+id/btnList" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="160dp" android:text="列表對話框"/> <Button android:id="@+id/btnMy" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="210dp" android:text="自定義對話框"/> </RelativeLayout>
2.新建dialog.xml頁面,作為最后一個(gè)自定義對話框的布局頁面。
dialog.xml頁面:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/edInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" > <requestFocus /> </EditText> <Button android:id="@+id/btnOk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="確定" /> </LinearLayout> <ImageView android:id="@+id/ivPicture" android:layout_width="wrap_content" android:layout_height="280dp" android:src="@drawable/white" /> <TextView android:id="@+id/textView1" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout>
3.MainActivity.java頁面處理對話框的彈出及點(diǎn)擊事件。
MainActivity.java頁面:
package com.example.alertdialog; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private Button btnSure,btnRadio,btnCheck,btnList,btnMy; private String[] sexList={"男","女"};//單選列表 private String[] likeList={"籃球","足球","打游戲","聽音樂","看電影"};//多選列表 private String[] itemList={"項(xiàng)目經(jīng)理","策劃","測試","美工","程序員"};//列表 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getId();//獲取控件id click();//按鈕綁定點(diǎn)擊事件 } /*獲取控件id*/ private void getId() { btnSure = (Button) findViewById(R.id.btnSure); btnRadio=(Button) findViewById(R.id.btnRadio); btnCheck=(Button) findViewById(R.id.btnCheck); btnList=(Button) findViewById(R.id.btnList); btnMy=(Button) findViewById(R.id.btnMy); } /*按鈕綁定點(diǎn)擊事件*/ private void click() { btnSure.setOnClickListener(this); btnRadio.setOnClickListener(this); btnCheck.setOnClickListener(this); btnList.setOnClickListener(this); btnMy.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btnSure: showDialog1();//確認(rèn)對話框 break; case R.id.btnRadio: showDialog2();//單選對話框 break; case R.id.btnCheck: showDialog3();//多選對話框 break; case R.id.btnList: showDialog4(); break; case R.id.btnMy: showDialog5(); break; } } /*確認(rèn)對話框*/ private void showDialog1() { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("確認(rèn)對話框");//設(shè)置標(biāo)題 builder.setIcon(R.drawable.ic_launcher);//設(shè)置圖標(biāo) builder.setMessage("確認(rèn)對話框提示內(nèi)容");//設(shè)置內(nèi)容 /*添加對話框中確定按鈕和點(diǎn)擊事件*/ builder.setPositiveButton("確定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Toast.makeText(MainActivity.this,"點(diǎn)擊了確定按鈕",Toast.LENGTH_SHORT).show(); } }); /*添加對話框中取消按鈕和點(diǎn)擊事件*/ builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Toast.makeText(MainActivity.this,"點(diǎn)擊了取消按鈕",Toast.LENGTH_SHORT).show(); } }); AlertDialog dialog=builder.create();//獲取dialog dialog.show();//顯示對話框 } /*單選對話框*/ private void showDialog2() { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("性別");//設(shè)置標(biāo)題 builder.setIcon(R.drawable.ic_launcher);//設(shè)置圖標(biāo) /*參數(shù)一位單選列表文字,參數(shù)二為默認(rèn)第幾個(gè)選中(-1默認(rèn)不選中),參數(shù)三是創(chuàng)建監(jiān)聽器*/ builder.setSingleChoiceItems(sexList,-1,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String sex=sexList[which]; Toast.makeText(MainActivity.this,"這個(gè)人性別為"+sex, Toast.LENGTH_SHORT).show(); } }); /*添加對話框中取消按鈕點(diǎn)擊事件*/ builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss();//關(guān)閉對話框 } }); AlertDialog dialog=builder.create();//獲取dialog dialog.show();//顯示對話框 } /*多選對話框*/ private void showDialog3() { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("愛好");//設(shè)置標(biāo)題 builder.setIcon(R.drawable.ic_launcher);//設(shè)置圖標(biāo) /*參數(shù)同單選對話框一樣,另外第二個(gè)參數(shù)默認(rèn)不選中為null,而不是-1*/ builder.setMultiChoiceItems(likeList,null,new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if(isChecked){ Toast.makeText(MainActivity.this,"我喜歡"+likeList[which],Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this,"我不喜歡"+likeList[which],Toast.LENGTH_SHORT).show(); } } }); /*添加對話框中取消按鈕點(diǎn)擊事件*/ builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss();//關(guān)閉對話框 } }); AlertDialog dialog=builder.create();//獲取dialog dialog.show();//顯示對話框 } /*列表對話框*/ private void showDialog4() { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("部門列表");//設(shè)置標(biāo)題 builder.setIcon(R.drawable.ic_launcher);//設(shè)置圖標(biāo) builder.setItems(itemList,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"我點(diǎn)擊了"+itemList[which],Toast.LENGTH_SHORT).show(); } }); AlertDialog dialog=builder.create();//獲取dialog dialog.show();//顯示對話框 } /*自定義對話框*/ private void showDialog5() { LayoutInflater inflater=LayoutInflater.from(this); View view=inflater.inflate(R.layout.dialog,null);//獲取自定義布局 AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("自定義對話框");//設(shè)置標(biāo)題 builder.setIcon(R.drawable.ic_launcher);//設(shè)置圖標(biāo) builder.setView(view);//設(shè)置自定義樣式布局到對話框 AlertDialog dialog=builder.create();//獲取dialog dialog.show();//顯示對話框 } }
4.運(yùn)行就出現(xiàn)目標(biāo)效果了。
關(guān)于Android中AlertDialog各種對話框的用法就給大家介紹這么多,希望對大家有所幫助!
- Android中自定義對話框(Dialog)的實(shí)例代碼
- Android自定義對話框Dialog的簡單實(shí)現(xiàn)
- Android實(shí)現(xiàn)底部對話框BottomDialog彈出實(shí)例代碼
- 詳解Android 全局彈出對話框SYSTEM_ALERT_WINDOW權(quán)限
- Android實(shí)現(xiàn)點(diǎn)擊AlertDialog上按鈕時(shí)不關(guān)閉對話框的方法
- 實(shí)例詳解Android自定義ProgressDialog進(jìn)度條對話框的實(shí)現(xiàn)
- Android 之BottomsheetDialogFragment仿抖音評論底部彈出對話框效果(實(shí)例代碼)
- Android實(shí)現(xiàn)退出界面彈出提示對話框
- Android仿QQ消息提示實(shí)現(xiàn)彈出式對話框
- Android對話框使用方法詳解
相關(guān)文章
Android利用EditText如何實(shí)現(xiàn)搜索框詳解
EditText 在開發(fā)中也是經(jīng)常用到的控件,也是一個(gè)比較必要的組件,下面這篇文章主要給大家介紹了關(guān)于Android利用EditText如何實(shí)現(xiàn)搜索框的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07android創(chuàng)建數(shù)據(jù)庫(SQLite)保存圖片示例
這篇文章主要介紹了android創(chuàng)建數(shù)據(jù)庫,保存圖片到數(shù)據(jù)庫再從數(shù)據(jù)庫取圖片的方法,大家參考使用吧2014-01-01Android自定義View軟鍵盤實(shí)現(xiàn)搜索
本文給大家分享android自定義view軟鍵盤實(shí)現(xiàn)搜索,對android軟鍵盤相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12關(guān)于Android中drawable必知的一些規(guī)則
drawable這個(gè)東西相信大家天天都在使用,每個(gè)Android開發(fā)者都再熟悉不過了,但可能還有一些你所不知道的規(guī)則,那今天我們就來一起探究一下這些規(guī)則。2016-08-08Android startActivityForResult()代替方案示例
這篇文章主要為大家介紹了Android startActivityForResult()代替方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08安裝android開發(fā)環(huán)境原始版(windows版)
安裝android開發(fā)環(huán)境原始版(windows版)的詳細(xì)步驟2013-03-03基于Android CALL && SendMes Test的相關(guān)介紹
本篇文章小編為大家介紹,Android CALL && SendMes Test 需要的朋友參考下2013-04-04