一、創(chuàng)建一個(gè)一般的彈出對(duì)話框AlertDialog:
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),海棠網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:海棠等地區(qū)。海棠做網(wǎng)站價(jià)格咨詢:18982081108
創(chuàng)建對(duì)話框 一個(gè)對(duì)話框一般是一個(gè)出現(xiàn)在當(dāng)前Activity之上的一個(gè)小窗口。 處于下面的Activity失去焦點(diǎn), 對(duì)話框接受所有的用戶交互。對(duì)話框一般用于提示信息和與當(dāng)前應(yīng)用程序直接相關(guān)功能。
二、創(chuàng)建AlertDialog通常使用的方法使用到的方法:
setIcon();setTitle();setMessage();setView();setAdapter();setPositiveButton();setNegativeButton();setNeutralButton();setMultiChoiceItems();setSingleChoiceItems();create();show()...

三、創(chuàng)建AlertDialog時(shí),多數(shù)包含的共同方法:
// 創(chuàng)建面板 , 創(chuàng)建Buidker構(gòu)建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 繪制面板 添加需要內(nèi)容并進(jìn)行顯示
builder.setTitle("普通提示").setMessage("確定退出嗎?").create().show();
四、普通對(duì)話框中通常使用的控件:
1)普通對(duì)話框添加按鈕(Dialog的按鈕顯示在安卓4.0+和5.0+中不同,5.0以后不在存在邊框,默認(rèn)的按鈕是橫排,每個(gè)按鈕都有固定位置。如果不注意順序的話,可能造成文字沒有間距),創(chuàng)建步驟:
1.創(chuàng)建AlertDialog.Builder對(duì)象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通過(guò)builder設(shè)置普通對(duì)話框。
例:builder=builder.setTitle().setMessage().setPositiveButton().setNegativeButton().setNe utralButton();
3.將設(shè)置好的builder通過(guò)使用create()方法轉(zhuǎn)換成為AlerDialog對(duì)象
例:AlerDialog alertdialog = builder.create();
4.調(diào)用show()方法顯示。
例:alertdialog.show();

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
/**
* 根據(jù)要求設(shè)置布局res/layout/xx.xml文件
*
* 為xx.xml文件中的控件添加點(diǎn)擊事件,空間的點(diǎn)擊事件引發(fā)的動(dòng)作是普通彈出對(duì)話框。
* 彈出對(duì)話框通常最多設(shè)置三個(gè)按鈕(彈出對(duì)話框中按鈕順序?yàn)?,3,2),分別使用方法setPositiveButton(name,onclick).setNegativeButton(name,onclick).setNeutralButton(name,onclick).create.show();
* 其中參數(shù)name :彈出對(duì)話框中的按鈕名稱;onclick :彈出對(duì)話框中對(duì)應(yīng)按鈕的點(diǎn)擊事件。
*
* 創(chuàng)建對(duì)話框的步驟
* 1.創(chuàng)建Builder構(gòu)建器 AlertDialog.Builder builder
* 2.給Builder構(gòu)建器去setXXX內(nèi)容
* 3.如果setXXX內(nèi)容設(shè)置完畢,將Builder構(gòu)建器通過(guò)create()方法轉(zhuǎn)成AlertDialog;
* 4.讓轉(zhuǎn)換后的builder,調(diào)用AlertDialog的show()方法將對(duì)話框進(jìn)行顯示。
*
* @author Administrator
*
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void showClick(View view) {
// 創(chuàng)建面板 , 創(chuàng)建Buidker構(gòu)建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 繪制面板 添加需要內(nèi)容
builder = builder.setTitle("普通提示").setMessage("確定退出嗎?").setIcon(R.drawable.ic_launcher);
builder.setPositiveButton("確定",
/**
* 添加第一個(gè)按鈕
*/
//setPositiveButton 第一參數(shù):1.按鈕上面的文字;
//第二個(gè)參數(shù):按鈕上面的單擊事件。
new OnClickListener() {
/**
* DialogInterface dialog:按鈕所依賴的對(duì)話框
* int which:索引值
*/
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("builder", "---->"+which);
dialog.dismiss();//設(shè)置對(duì)話框消失
// 關(guān)閉activity
MainActivity.this.finish();
}
}).setNegativeButton("取消", new OnClickListener() {
/**
* 添加第二個(gè)按鈕
*/
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("builder", "setNegativeButton" + which);
dialog.dismiss();
}
}).setNeutralButton("忽略", new OnClickListener() {
/**
* 添加第三個(gè)按鈕
*/
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("builder", "setNeutralButton"+which);
}
}).create().show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}2)彈出對(duì)話框顯示單選框和復(fù)選框,創(chuàng)建步驟:
1.創(chuàng)建AlertDialog.Builder對(duì)象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通過(guò)builder設(shè)置普通對(duì)話框。
例:builder = builder.setTitle().setMessage().setMultiChoiceItems().
setSingleChoiceItems();
在設(shè)置復(fù)選框的時(shí)候結(jié)合了按鈕一起使用。
3.將設(shè)置好的builder通過(guò)使用create()方法轉(zhuǎn)換成為AlerDialog對(duì)象
例:AlerDialog alertdialog = builder.create();
4.調(diào)用show()方法顯示。
例:alertdialog.show();


import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv_show;
String str[] = {"桌球","高爾夫","保齡球","籃球","旅游","瑜伽"};
String goods[] = {"籃球鞋","上衣","短褲","羽絨服","T恤"};
//存放多選項(xiàng)的集合
List<String> lists = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_show = (TextView) findViewById(R.id.tv_show);//初始化顯示文本框
}
//添加按鈕點(diǎn)擊響應(yīng)事件
public void click(View view){
switch (view.getId()) {
//復(fù)選按鈕單擊事件
case R.id.btn1:
AlertDialog.Builder builder2= new AlertDialog.Builder(this);
builder2.setTitle("多項(xiàng)選擇").setMultiChoiceItems(goods, new boolean[]{false,false,false,false,false}, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
lists.add(goods[which]);
}else{
lists.remove(goods[which]);
}
}
}).setPositiveButton("提交", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tv_show.setText(lists.toString());
dialog.dismiss();
}
}).setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tv_show.setText("沒有選中商品");
dialog.dismiss();
}
}).create().show();
break;
//單選按鈕單擊事件
case R.id.btn2:
AlertDialog.Builder builder= new AlertDialog.Builder(this);
builder.setTitle("請(qǐng)選擇:").setSingleChoiceItems(str, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("builder", "---->"+which);
String choice = str[which];
tv_show.setText(choice);
dialog.dismiss();
}
}).setIcon(R.drawable.ic_launcher).create().show();
break;
default:
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}3)為普通對(duì)話框中添加View控件(以EditText為例),創(chuàng)建步驟:
1.創(chuàng)建AlertDialog.Builder對(duì)象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通過(guò)builder設(shè)置普通對(duì)話框。
例:builder = builder.setTitle().setMessage().setView();
視圖同樣與按鈕結(jié)合使用。
3.將設(shè)置好的builder通過(guò)使用create()方法轉(zhuǎn)換成為AlerDialog對(duì)象
例:AlerDialog alertdialog = builder.create();
4.調(diào)用show()方法顯示。
例:alertdialog.show();

下面的帶嗎是一個(gè)簡(jiǎn)單的小應(yīng)用,根據(jù)名字測(cè)試靠什么吃飯,代碼如下:
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tvresult;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvresult = (TextView) findViewById(R.id.tvresult);
}
public void click(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();//創(chuàng)建布局填充器 在activity中使用;
View view1 = inflater.inflate(R.layout.item, null);
et = (EditText) view1.findViewById(R.id.edit);
builder.setTitle("進(jìn)行測(cè)試").setView(view1).setPositiveButton("提交", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//獲取edittext的值
String msg = et.getText().toString().trim();
int r = msg.hashCode();
Log.i("aaa", r+"");
tvresult.setVisibility(View.VISIBLE);
if (r%2 == 0) {
tvresult.setText(msg+"靠大腦吃飯");
}else if(r%3 == 0){
tvresult.setText(msg+"靠臉皮吃飯");
}else if(r%5 == 0){
tvresult.setText(msg+"靠手吃飯");
}else if(r%7 == 0){
tvresult.setText(msg+"靠逗比吃飯");
}else if(r%11 == 0){
tvresult.setText(msg+"靠老婆吃飯");
}else {
tvresult.setText(msg+"靠丐幫吃飯");
}
dialog.dismiss();
}
}).setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create().show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}五、總結(jié):
普通對(duì)話款在Android開發(fā)中應(yīng)用較為廣泛,在普通對(duì)話框里面通常包含按鈕,圖標(biāo),主題,內(nèi)容,選擇列表,視圖控件等。上述對(duì)普通對(duì)話框的基本介紹及用途介紹希望對(duì)大家有用。
名稱欄目:關(guān)于AlertDialog的常見用法
網(wǎng)址分享:http://chinadenli.net/article2/goseoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、面包屑導(dǎo)航、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)