建立AlertDialog的步驟:
1、建立AlertDialog.Builder對象
2、調用Builder對象的setTitle方法設定標題,setIcon方法設定表徵圖
3、調用Builder相關方法如setMessage方法、setItems方法、setSingleChoiceItems方法、setMultiChoiceItems方法、setAdapter方法、setView方法設定不同類型的對話方塊內容。
4、調用setPositiveButton、setNegativeButton、setNeutralButton設定多個按鈕
5、調用Builder對象的create()方法建立AlertDialog對象
6、調用AlertDialog對象的show()方法將對話方塊顯示出來
一、setMessage:設定對話方塊內容為簡單常值內容
// 建立構建器AlertDialog.Builder builder = new AlertDialog.Builder(this);// 設定參數builder.setTitle("請做出選擇").setIcon(R.drawable.ic_launcher).setMessage("鳳姐美不美").setPositiveButton("美", new OnClickListener() {// 積極@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "恭喜你打錯了", 0).show();}}).setNegativeButton("不美", new OnClickListener() {// 消極@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "恭喜你答對了", 0).show();}}).setNeutralButton("不知道", new OnClickListener() {// 中間級@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你瞎啊", 0).show();}});builder.create().show();
運行截圖:
二、setItem:設定文字框內容為簡單清單項目
// 建立資料final String[] items = new String[] { "北京", "上海", "廣州", "深圳" };// 建立對話方塊構建器AlertDialog.Builder builder = new AlertDialog.Builder(this);// 設定參數builder.setIcon(R.drawable.ic_launcher).setTitle("提示").setItems(items, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, items[which],Toast.LENGTH_SHORT).show();}});builder.create().show();
運行截圖:
三、setSingleChoiceItems()設定對話方塊內容為單選清單項目
// 建立資料final String[] items = new String[] { "北京", "上海", "廣州", "深圳" };// 建立對話方塊構建器AlertDialog.Builder builder = new AlertDialog.Builder(this);// 設定參數builder.setIcon(R.drawable.ic_launcher).setTitle("提示").setSingleChoiceItems(items, 0, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, items[which],Toast.LENGTH_SHORT).show();}});builder.create().show();
運行截圖:
四、setMultiChoiceItems()設定對話方塊內容為多選項列表
// 建立資料final String[] items = new String[] { "北京", "上海", "廣州", "深圳" };// 建立對話方塊構建器AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setIcon(R.drawable.ic_launcher).setTitle("提示").setMultiChoiceItems(items,new boolean[] { true, true, false, false, false },new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which, boolean isChecked) {// TODO Auto-generated method stubif (isChecked) {Toast.makeText(MainActivity.this,items[which], 0).show();}}});builder.create().show();
運行截圖:
五、setAdapter()設定對話方塊內容為自訂欄表項(這裡是一個布局)
// 建立資料final String[] items = new String[] { "北京", "上海", "廣州", "深圳" };// 建立對話方塊構建器AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("提示").setIcon(R.drawable.ic_launcher).setAdapter(new ArrayAdapter<String>(MainActivity.this,R.layout.item, R.id.tv, items),new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, items[which],0).show();}});builder.create().show();
運行截圖:
六、setView()設定對話方塊為自訂View
// 建立對話方塊構建器AlertDialog.Builder builder = new AlertDialog.Builder(this);// 擷取布局View view2 = View.inflate(MainActivity.this, R.layout.login, null);// 擷取布局中的控制項final EditText username = (EditText) view2.findViewById(R.id.username);final EditText password = (EditText) view2.findViewById(R.id.password);final Button button = (Button) view2.findViewById(R.id.btn_login);// 設定參數builder.setTitle("Login").setIcon(R.drawable.ic_launcher).setView(view2);// 建立對話方塊final AlertDialog alertDialog = builder.create();button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString uname = username.getText().toString().trim();String psd = password.getText().toString().trim();if (uname.equals("zcl") && psd.equals("123456")) {Toast.makeText(MainActivity.this, "登入成功", 0).show();}Toast.makeText(MainActivity.this, "登入失敗", 0).show();alertDialog.dismiss();// 對話方塊消失}});alertDialog.show();
運行截圖:
以上所述是小編給大家介紹的Android中AlertDialog的六種建立方式,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!