一、創(chuàng)建一個一般的彈出對話框AlertDialog:
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計,海棠網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:海棠等地區(qū)。海棠做網(wǎng)站價格咨詢:18982081108
創(chuàng)建對話框 一個對話框一般是一個出現(xiàn)在當(dāng)前Activity之上的一個小窗口。 處于下面的Activity失去焦點, 對話框接受所有的用戶交互。對話框一般用于提示信息和與當(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ù)包含的共同方法:
// 創(chuàng)建面板 , 創(chuàng)建Buidker構(gòu)建器 AlertDialog.Builder builder = new AlertDialog.Builder(this); // 繪制面板 添加需要內(nèi)容并進行顯示 builder.setTitle("普通提示").setMessage("確定退出嗎?").create().show();
四、普通對話框中通常使用的控件:
1)普通對話框添加按鈕(Dialog的按鈕顯示在安卓4.0+和5.0+中不同,5.0以后不在存在邊框,默認的按鈕是橫排,每個按鈕都有固定位置。如果不注意順序的話,可能造成文字沒有間距),創(chuàng)建步驟:
1.創(chuàng)建AlertDialog.Builder對象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通過builder設(shè)置普通對話框。
例:builder=builder.setTitle().setMessage().setPositiveButton().setNegativeButton().setNe utralButton();
3.將設(shè)置好的builder通過使用create()方法轉(zhuǎn)換成為AlerDialog對象
例: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文件中的控件添加點擊事件,空間的點擊事件引發(fā)的動作是普通彈出對話框。 * 彈出對話框通常最多設(shè)置三個按鈕(彈出對話框中按鈕順序為1,3,2),分別使用方法setPositiveButton(name,onclick).setNegativeButton(name,onclick).setNeutralButton(name,onclick).create.show(); * 其中參數(shù)name :彈出對話框中的按鈕名稱;onclick :彈出對話框中對應(yīng)按鈕的點擊事件。 * * 創(chuàng)建對話框的步驟 * 1.創(chuàng)建Builder構(gòu)建器 AlertDialog.Builder builder * 2.給Builder構(gòu)建器去setXXX內(nèi)容 * 3.如果setXXX內(nèi)容設(shè)置完畢,將Builder構(gòu)建器通過create()方法轉(zhuǎn)成AlertDialog; * 4.讓轉(zhuǎn)換后的builder,調(diào)用AlertDialog的show()方法將對話框進行顯示。 * * @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("確定", /** * 添加第一個按鈕 */ //setPositiveButton 第一參數(shù):1.按鈕上面的文字; //第二個參數(shù):按鈕上面的單擊事件。 new OnClickListener() { /** * DialogInterface dialog:按鈕所依賴的對話框 * int which:索引值 */ @Override public void onClick(DialogInterface dialog, int which) { Log.i("builder", "---->"+which); dialog.dismiss();//設(shè)置對話框消失 // 關(guān)閉activity MainActivity.this.finish(); } }).setNegativeButton("取消", new OnClickListener() { /** * 添加第二個按鈕 */ @Override public void onClick(DialogInterface dialog, int which) { Log.i("builder", "setNegativeButton" + which); dialog.dismiss(); } }).setNeutralButton("忽略", new OnClickListener() { /** * 添加第三個按鈕 */ @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)彈出對話框顯示單選框和復(fù)選框,創(chuàng)建步驟:
1.創(chuàng)建AlertDialog.Builder對象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通過builder設(shè)置普通對話框。
例:builder = builder.setTitle().setMessage().setMultiChoiceItems().
setSingleChoiceItems();
在設(shè)置復(fù)選框的時候結(jié)合了按鈕一起使用。
3.將設(shè)置好的builder通過使用create()方法轉(zhuǎn)換成為AlerDialog對象
例: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恤"}; //存放多選項的集合 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);//初始化顯示文本框 } //添加按鈕點擊響應(yīng)事件 public void click(View view){ switch (view.getId()) { //復(fù)選按鈕單擊事件 case R.id.btn1: AlertDialog.Builder builder2= new AlertDialog.Builder(this); builder2.setTitle("多項選擇").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("請選擇:").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)為普通對話框中添加View控件(以EditText為例),創(chuàng)建步驟:
1.創(chuàng)建AlertDialog.Builder對象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通過builder設(shè)置普通對話框。
例:builder = builder.setTitle().setMessage().setView();
視圖同樣與按鈕結(jié)合使用。
3.將設(shè)置好的builder通過使用create()方法轉(zhuǎn)換成為AlerDialog對象
例:AlerDialog alertdialog = builder.create();
4.調(diào)用show()方法顯示。
例:alertdialog.show();
下面的帶嗎是一個簡單的小應(yīng)用,根據(jù)名字測試靠什么吃飯,代碼如下:
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("進行測試").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é):
普通對話款在Android開發(fā)中應(yīng)用較為廣泛,在普通對話框里面通常包含按鈕,圖標(biāo),主題,內(nèi)容,選擇列表,視圖控件等。上述對普通對話框的基本介紹及用途介紹希望對大家有用。
名稱欄目:關(guān)于AlertDialog的常見用法
網(wǎng)址分享:http://bm7419.com/article2/goseoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、面包屑導(dǎo)航、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計公司、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)