iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
Mobile Development

Android Studio - 30天菜鳥筆記系列 第 12

Android Studio菜鳥筆記 - Day12 - AlertDialog

  • 分享至 

  • xImage
  •  

AlertDialog對話方塊是一個小型視窗,可提示使用者做決定或輸入其他資訊,比如說密碼錯誤或是確認動作。

AlertDialog基礎語法

setTitle():對話方塊的標題
setIcon():對話方塊的圖示
setMessage():對話方塊的訊息內容
setItems():對話方塊的列表內容
setPositiveButton():在對話方塊中加入右側的按鈕
setNegativeButton():在對話方塊中加入左側的按鈕
setNeutralButton():在對話方塊中加入中立的按鈕
setPositiveButton,setNegativeButton,setNeutralButton這三個差別在於AlertDialog顯示時按鈕的位置,這些按鈕位置的功能都可以自己設計,所以確定鍵不一定就要放在setPositiveButton,可自行調整。
setCancelable():禁用返回鍵
setCanceledOnTouchOutside():點擊灰色部分不消失

普通的對話方塊

bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
                alertDialog.setTitle("這裡是標題");
                alertDialog.setIcon(R.drawable.icon);
                alertDialog.setMessage("這裡是內容");
                alertDialog.setPositiveButton("確定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "確定" ,Toast.LENGTH_SHORT).show();//右
                    }
                });
                alertDialog.setNegativeButton("中立", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "中立", Toast.LENGTH_SHORT).show();//中
                    }
                });
                alertDialog.setNeutralButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();//左
                    }
                });
                alertDialog.setCancelable(false);//禁用返回
                alertDialog.setCanceledOnTouchOutside(false);//點擊灰色部分不消失
                alertDialog.show();//一定要show出來
            }
        });

列表對話方塊

//列表對話方塊
        bt4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
                String[] str = {"太陽", "月亮", "地球", "火星", "木星", "水星", "土星", "天王星", "海王星"};
                alertDialog.setTitle("列表對話框");
                alertDialog.setItems(str, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你選擇了:" + str[i], Toast.LENGTH_SHORT).show();
                    }
                });
                alertDialog.show();
            }
        });

自訂AlertDialog

再res/laout新增一個XML
然後開始設計自己想要的樣式
我的長這樣

最後用inflater去加載剛剛自訂的樣式
放入setView()就完成了

bt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
                LayoutInflater inflater = MainActivity.this.getLayoutInflater();
                alertDialog.setView(inflater.inflate(R.layout.layout_dialog,null));
                alertDialog.show();
            }
        });

最後成果


上一篇
Android Studio菜鳥筆記 - Day11 - SeekBar
下一篇
Android Studio菜鳥筆記 - Day13 - RadioGroup與RadioButton
系列文
Android Studio - 30天菜鳥筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言