Android入門(mén)之AlertDialog用法實(shí)例分析
本文實(shí)例講述的是AlertDialog,這種對(duì)話框會(huì)經(jīng)常遇到。AlertDialog跟WIN32開(kāi)發(fā)中的Dialog不一樣,AlertDialog是非阻塞的,而阻塞的對(duì)話框用的是PopupWindow。
先貼出該程序運(yùn)行的截圖:
main.xml的源碼:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:text="非Layout型對(duì)話框" android:layout_width="fill_parent"></Button> <Button android:id="@+id/Button02" android:layout_height="wrap_content" android:text="Layout型對(duì)話框" android:layout_width="fill_parent"></Button><View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View> </LinearLayout>
下圖是非Layout型對(duì)話框,直接使用AlertDialog
下圖是使用了Layout的對(duì)話框,可以自定義控件,實(shí)現(xiàn)更復(fù)雜的對(duì)話框
dialoglayout.xml的源碼:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <EditText android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/edtInput"/> </LinearLayout>
程序源碼:
package com.testAlertDialog; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.PopupWindow; public class testAlertDialog extends Activity { Button btnShowDialog; Button btnShowDialog_Layout; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //定義按鈕 btnShowDialog=(Button)this.findViewById(R.id.Button01); btnShowDialog.setOnClickListener(new ClickEvent()); btnShowDialog_Layout=(Button)this.findViewById(R.id.Button02); btnShowDialog_Layout.setOnClickListener(new ClickEvent()); } //統(tǒng)一處理按鍵事件 class ClickEvent implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub if(v==btnShowDialog) showDialog(testAlertDialog.this); else if(v==btnShowDialog_Layout) showDialog_Layout(testAlertDialog.this); } } //顯示基本的AlertDialog private void showDialog(Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setIcon(R.drawable.icon); builder.setTitle("Title"); builder.setMessage("Message"); builder.setPositiveButton("Button1", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle("點(diǎn)擊了對(duì)話框上的Button1"); } }); builder.setNeutralButton("Button2", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle("點(diǎn)擊了對(duì)話框上的Button2"); } }); builder.setNegativeButton("Button3", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle("點(diǎn)擊了對(duì)話框上的Button3"); } }); builder.show(); } //顯示基于Layout的AlertDialog private void showDialog_Layout(Context context) { LayoutInflater inflater = LayoutInflater.from(this); final View textEntryView = inflater.inflate( R.layout.dialoglayout, null); final EditText edtInput=(EditText)textEntryView.findViewById(R.id.edtInput); final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setCancelable(false); builder.setIcon(R.drawable.icon); builder.setTitle("Title"); builder.setView(textEntryView); builder.setPositiveButton("確認(rèn)", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle(edtInput.getText()); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle(""); } }); builder.show(); } }
- Android中AlertDialog各種對(duì)話框的用法實(shí)例詳解
- Android使用自定義alertdialog實(shí)現(xiàn)確認(rèn)退出按鈕
- Android中AlertDialog的六種創(chuàng)建方式
- Android AlertDialog自定義樣式實(shí)現(xiàn)代碼
- Android中阻止AlertDialog關(guān)閉實(shí)例代碼
- Android仿IOS自定義AlertDialog提示框
- Android AlertDialog對(duì)話框用法示例
- Android使用AlertDialog實(shí)現(xiàn)的信息列表單選、多選對(duì)話框功能
- Android編程實(shí)現(xiàn)Dialog窗體監(jiān)聽(tīng)的方法
- Android開(kāi)發(fā)實(shí)現(xiàn)AlertDialog中View的控件設(shè)置監(jiān)聽(tīng)功能分析
相關(guān)文章
Android中ImageCropper矩形、圓形 裁剪框的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Android中ImageCropper矩形、圓形 裁剪框的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2018-07-07android 多點(diǎn)觸摸圖片縮放的具體實(shí)現(xiàn)方法
2013-06-06Android Kotlin環(huán)境使用ButterKnife的方法
本篇文章主要介紹了Android Kotlin環(huán)境使用ButterKnife的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Android車載空調(diào)系統(tǒng)(HVAC)開(kāi)發(fā)方法分析
HVAC?全稱:供暖通風(fēng)與空氣調(diào)節(jié)(Heating?Ventilation?and?Air?Conditioning),用戶可以通過(guò)他來(lái)控制整個(gè)汽車的空調(diào)系統(tǒng),是汽車中非常重要的一個(gè)功能,汽車的空調(diào)HMI雖然并不復(fù)雜,但是大多都是用符號(hào)來(lái)表示功能,必須理解空調(diào)的各個(gè)符號(hào)表示的含義2023-12-12去掉RecycleView或者ListView上下滑動(dòng)陰影的方法
下面小編就為大家分享一篇去掉RecycleView或者ListView上下滑動(dòng)陰影的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01RecyclerView+PagerSnapHelper實(shí)現(xiàn)抖音首頁(yè)翻頁(yè)的Viewpager效果
這篇文章主要為大家詳細(xì)介紹了RecyclerView+PagerSnapHelper實(shí)現(xiàn)抖音首頁(yè)翻頁(yè)的Viewpager效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10